The following commit has been merged in the linux branch: commit 50c54a57dfbd392e17f1473717b8e125afcb01a3 Author: Thomas Chou thomas@wytron.com.tw Date: Wed Oct 7 14:16:43 2009 +0000
ethoc: clear only pending irqs
This patch fixed the problem of dropped packets due to lost of interrupt requests. We should only clear what was pending at the moment we read the irq source reg.
Signed-off-by: Thomas Chou thomas@wytron.com.tw Signed-off-by: David S. Miller davem@davemloft.net
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c index 88a1c52..590473a 100644 --- a/drivers/net/ethoc.c +++ b/drivers/net/ethoc.c @@ -508,7 +508,7 @@ static irqreturn_t ethoc_interrupt(int irq, void *dev_id) return IRQ_NONE; }
- ethoc_ack_irq(priv, INT_MASK_ALL); + ethoc_ack_irq(priv, pending);
if (pending & INT_MASK_BUSY) { dev_err(&dev->dev, "packet dropped\n");