The irq handler must not return 1 when the status register is null
during the firt iteration.
drivers/net/r8169.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff -puN drivers/net/r8169.c~r8169-irq-handler-status drivers/net/r8169.c
--- linux-2.6.5/drivers/net/r8169.c~r8169-irq-handler-status 2004-04-07 22:56:57.000000000 +0200
+++ linux-2.6.5-fr/drivers/net/r8169.c 2004-04-07 22:58:21.000000000 +0200
@@ -1540,8 +1540,8 @@ rtl8169_interrupt(int irq, void *dev_ins
do {
status = RTL_R16(IntrStatus);
- /* h/w no longer present (hotplug?) or major error, bail */
- if (status == 0xFFFF)
+ /* hotplug/major error/no more work/shared irq */
+ if ((status == 0xFFFF) || !status)
break;
handled = 1;
_