Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8770e91a authored by Nicolas Ferre's avatar Nicolas Ferre Committed by David S. Miller
Browse files

net/macb: fix race with RX interrupt while doing NAPI



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: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ac574804
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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 */