linux/drivers/net/phy
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
..
Kconfig [PATCH] 2.6.18: sb1250-mac: Broadcom PHY support 2006-12-02 00:11:54 -05:00
Makefile [PATCH] 2.6.18: sb1250-mac: Broadcom PHY support 2006-12-02 00:11:54 -05:00
broadcom.c [PATCH] 2.6.18: sb1250-mac: Broadcom PHY support 2006-12-02 00:11:54 -05:00
cicada.c [PATCH] Add support for the Cicada 8201 PHY 2006-07-05 14:07:14 -04:00
davicom.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fixed.c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
lxt.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
marvell.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mdio_bus.c [PATCH] PAL: Support of the fixed PHY 2006-08-19 17:44:31 -04:00
phy.c [PATCH] 2.6.18: sb1250-mac: Phylib IRQ handling fixes 2006-12-02 00:11:55 -05:00
phy_device.c [netdrvr] phy: Fix bugs in error handling 2006-10-01 07:27:46 -04:00
qsemi.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
smsc.c [PATCH] remove unnecessary config.h includes from drivers/net/ 2006-08-14 14:00:43 -04:00
vitesse.c [PATCH] remove unnecessary config.h includes from drivers/net/ 2006-08-14 14:00:43 -04:00