Re: 3c59x: shared interrupt problem
From: Steffen Klassert <hidden>
Date: 2009-03-11 11:38:19
On Tue, Mar 10, 2009 at 02:55:42PM -0700, Andrew Morton wrote:
quoted
This basically reverts a patch from akpm (bitkeeper cset 1.1046.95.8) This patch was to workaround lots of "nobody cared" warnings generated by boomerang_interrupt(). I added Andrew to the Cc, perhaps he can remember some details on this.Beats me. Do you havea full copy of that patch, including changelog?
It was this one: #### ChangeSet #### 2003-05-19 10:27:49-07:00, akpm@digeo.com [PATCH] 3c59x irqreturn fix Apparently boomerang_interrupt() is generating lots of "nobody cared" warnings - one per packet it seems. Frankly, I don't have a clue why. These are ancient cards and the driver is otherwise stable, so just change it to return IRQ_HANDLED and move on... ==== drivers/net/3c59x.c ==== 2003-05-17 14:09:34-07:00, akpm@digeo.com +2 -7 3c59x irqreturn fix
--- 1.34/drivers/net/3c59x.c 2003-04-20 22:41:08 -07:00
+++ 1.35/drivers/net/3c59x.c 2003-05-17 14:09:34 -07:00@@ -2321,7 +2321,6 @@ boomerang_interrupt(int irq, void *dev_i long ioaddr; int status; int work_done = max_interrupt_work; - int handled; ioaddr = dev->base_addr;
@@ -2336,18 +2335,14 @@ boomerang_interrupt(int irq, void *dev_i if (vortex_debug > 6) printk(KERN_DEBUG "boomerang_interrupt. status=0x%4x\n", status); - if ((status & IntLatch) == 0) { - handled = 0; + if ((status & IntLatch) == 0) goto handler_exit; /* No interrupt: shared IRQs can cause this */ - } if (status == 0xffff) { /* h/w no longer present (hotplug)? */ if (vortex_debug > 1) printk(KERN_DEBUG "boomerang_interrupt(1): status = 0xffff\n"); - handled = 0; goto handler_exit; } - handled = 1; if (status & IntReq) { status |= vp->deferred;
@@ -2442,7 +2437,7 @@ boomerang_interrupt(int irq, void *dev_i dev->name, status); handler_exit: spin_unlock(&vp->lock); - return IRQ_RETVAL(handled); + return IRQ_HANDLED; } static int vortex_rx(struct net_device *dev)