Message ID | 1360663728-10296-1-git-send-email-nicolas.ferre@atmel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
From: Nicolas Ferre <nicolas.ferre@atmel.com> Date: Tue, 12 Feb 2013 11:08:48 +0100 > When interrupts are disabled, an RX condition can occur but > it is not reported when enabling interrupts again. We need to check > RSR and use napi_reschedule() if condition is met. > > Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> Applied.
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c index a9b0830..b9d4bb9 100644 --- a/drivers/net/ethernet/cadence/macb.c +++ b/drivers/net/ethernet/cadence/macb.c @@ -693,6 +693,11 @@ static int macb_poll(struct napi_struct *napi, int budget) * get notified when new packets arrive. */ macb_writel(bp, IER, MACB_RX_INT_FLAGS); + + /* Packets received while interrupts were disabled */ + status = macb_readl(bp, RSR); + if (unlikely(status)) + napi_reschedule(napi); } /* TODO: Handle errors */
When interrupts are disabled, an RX condition can occur but it is not reported when enabling interrupts again. We need to check RSR and use napi_reschedule() if condition is met. Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> --- drivers/net/ethernet/cadence/macb.c | 5 +++++ 1 file changed, 5 insertions(+)