Commit 50c54a57 authored by Thomas Chou's avatar Thomas Chou Committed by David S. Miller

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: default avatarThomas Chou <thomas@wytron.com.tw>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 16dd18b0
...@@ -508,7 +508,7 @@ static irqreturn_t ethoc_interrupt(int irq, void *dev_id) ...@@ -508,7 +508,7 @@ static irqreturn_t ethoc_interrupt(int irq, void *dev_id)
return IRQ_NONE; return IRQ_NONE;
} }
ethoc_ack_irq(priv, INT_MASK_ALL); ethoc_ack_irq(priv, pending);
if (pending & INT_MASK_BUSY) { if (pending & INT_MASK_BUSY) {
dev_err(&dev->dev, "packet dropped\n"); dev_err(&dev->dev, "packet dropped\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment