Messages in this thread Patch in this message | | | From | Joakim Zhang <> | Subject | [PATCH] net: fec: only clear interrupt of handling queue in fec_enet_rx_queue() | Date | Mon, 6 Dec 2021 17:05:53 +0800 |
| |
Only clear interrupt of handling queue in fec_enet_rx_queue(), to avoid missing packets caused by clear interrupt of other queues.
Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com> --- drivers/net/ethernet/freescale/fec_main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 09df434b2f87..eeefed3043ad 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -1506,7 +1506,12 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id) break; pkt_received++; - writel(FEC_ENET_RXF, fep->hwp + FEC_IEVENT); + if (queue_id == 0) + writel(FEC_ENET_RXF_0, fep->hwp + FEC_IEVENT); + else if (queue_id == 1) + writel(FEC_ENET_RXF_1, fep->hwp + FEC_IEVENT); + else + writel(FEC_ENET_RXF_2, fep->hwp + FEC_IEVENT); /* Check for errors. */ status ^= BD_ENET_RX_LAST; -- 2.17.1
| |