linux/drivers
Maciej W. Rozycki 3c3070d713 [PATCH] 2.6.18: sb1250-mac: Phylib IRQ handling fixes
This patch fixes a couple of problems discovered with interrupt handling
in the phylib core, namely:

1. The driver uses timer and workqueue calls, but does not include
   <linux/timer.h> nor <linux/workqueue.h>.

2. The driver uses schedule_work() for handling interrupts, but does not
   make sure any pending work scheduled thus has been completed before
   driver's structures get freed from memory.  This is especially
   important as interrupts may keep arriving if the line is shared with
   another PHY.

   The solution is to ignore phy_interrupt() calls if the reported device
   has already been halted and calling flush_scheduled_work() from
   phy_stop_interrupts() (but guarded with current_is_keventd() in case
   the function has been called through keventd from the MAC device's
   close call to avoid a deadlock on the netlink lock).

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>

patch-mips-2.6.18-20060920-phy-irq-16
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-12-02 00:11:55 -05:00
..
acorn IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
acpi ACPI: Change ACPI to use dev_archdata instead of firmware_data 2006-12-01 14:52:01 -08:00
amba
ata [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
atm Fix misc .c/.h comment typos 2006-11-30 05:24:39 +01:00
base Driver core: platform_driver_probe(), can save codespace 2006-12-01 14:52:02 -08:00
block aoe: Add forgotten NULL at end of attribute list in aoeblk.c 2006-11-16 14:30:26 -08:00
bluetooth [PATCH] lockdep: annotate DECLARE_WAIT_QUEUE_HEAD 2006-10-30 12:08:40 -08:00
cdrom [PATCH] block: support larger block pc requests 2006-12-01 10:40:55 +01:00
char Merge master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog 2006-12-01 16:47:26 -08:00
clocksource [PATCH] clocksource: acpi_pm: add another greylist chipset 2006-10-21 13:35:05 -07:00
connector
cpufreq [PATCH] Fix CPU_FREQ_GOV_ONDEMAND=y compile error 2006-11-21 14:07:15 -08:00
crypto
dio
dma [PATCH] drivers/dma trivial annotations 2006-10-10 15:37:21 -07:00
edac [PATCH] edac_mc: fix error handling 2006-11-03 12:27:57 -08:00
eisa [PATCH] EISA: handle sysfs errors 2006-10-11 11:14:25 -07:00
fc4 [SCSI] fc4: Conversion to struct scsi_cmnd in fc4 2006-10-25 15:12:45 -07:00
firmware [PATCH] dell_rbu: fix error check 2006-11-16 11:43:38 -08:00
hwmon hwmon: Fix debug messages in w83781d 2006-10-18 13:03:09 -07:00
i2c Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2006-12-01 16:41:27 -08:00
ide Fix misc .c/.h comment typos 2006-11-30 05:24:39 +01:00
ieee1394 [ETH1394]: Fix unaligned accesses. 2006-10-30 15:24:38 -08:00
infiniband IB/ucm: Fix deadlock in cleanup 2006-11-29 15:33:10 -08:00
input Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 2006-12-01 16:41:58 -08:00
isdn Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 2006-12-01 16:41:58 -08:00
leds [PATCH] drivers/led: handle sysfs errors 2006-10-17 08:18:46 -07:00
macintosh [PATCH] powerpc: windfarm shall request it's sub modules 2006-11-15 19:57:12 -08:00
mca [PATCH] drivers/mca: handle sysfs errors 2006-10-11 11:14:25 -07:00
md [PATCH] md: do not freeze md threads for suspend 2006-11-08 18:29:24 -08:00
media Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 2006-12-01 16:41:58 -08:00
message Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2006-12-01 16:41:27 -08:00
mfd IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
misc [PATCH] Fix for LKDTM MEM_SWAPOUT crashpoint 2006-11-06 01:46:23 -08:00
mmc Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2006-12-01 16:41:07 -08:00
mtd Fix typos in doc and comments 2006-11-30 05:32:19 +01:00
net [PATCH] 2.6.18: sb1250-mac: Phylib IRQ handling fixes 2006-12-02 00:11:55 -05:00
nubus
oprofile
parisc Fix misc .c/.h comment typos 2006-11-30 05:24:39 +01:00
parport [PATCH] parport: fix compilation failure 2006-11-16 11:43:37 -08:00
pci Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2006-12-01 16:41:27 -08:00
pcmcia [PATCH] fix "pcmcia: fix 'rmmod pcmcia' with unbound devices" 2006-11-25 13:28:33 -08:00
pnp Fix DMA resource allocation in ACPIPnP 2006-10-18 11:36:11 -07:00
rapidio Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
rtc [PATCH] drivers/rtc/rtc-rs5c372.c: fix a NULL dereference 2006-11-25 13:28:33 -08:00
s390 Fix misc .c/.h comment typos 2006-11-30 05:24:39 +01:00
sbus [SPARC]: Fix bus_id[] string overflow. 2006-10-27 01:03:31 -07:00
scsi Fix misc .c/.h comment typos 2006-11-30 05:24:39 +01:00
serial [POWERPC] CPM_UART: Fix non-console initialisation 2006-11-10 21:35:36 +11:00
sh
sn [PATCH] ioc4: Enable build on non-SN2 2006-10-17 08:18:42 -07:00
spi Fix misc Kconfig typos 2006-11-30 05:22:59 +01:00
tc [MIPS] Fix DECserial build error by IRQ hander change 2006-10-08 02:38:28 +01:00
telephony [PATCH] drivers/telephony/ixj: fix an array overrun 2006-11-08 18:29:23 -08:00
usb Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 2006-12-01 16:41:58 -08:00
video Driver core: convert fb code to use struct device 2006-12-01 14:52:00 -08:00
w1 W1: ioremap balanced with iounmap 2006-11-16 14:30:26 -08:00
zorro
Kconfig [PATCH] ioc4: Enable build on non-SN2 2006-10-17 08:18:42 -07:00
Makefile