From 91278df70e2139cfea3357fa9053bb69dd76cf66 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 18 Jan 2016 22:38:14 +0000 Subject: [PATCH] cns3xxx: fix a ethernet driver napi poll handling bug Signed-off-by: Felix Fietkau SVN-Revision: 48333 --- .../cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c b/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c index e85e1bef9f..74a3ca0905 100644 --- a/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c +++ b/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c @@ -717,6 +717,7 @@ static int eth_poll(struct napi_struct *napi, int budget) if (!received) { napi_complete(napi); enable_irq(sw->rx_irq); + budget = 0; /* if rx descriptors are full schedule another poll */ if (rx_ring->desc[(i-1) & (RX_DESCS-1)].cown) @@ -732,7 +733,7 @@ static int eth_poll(struct napi_struct *napi, int budget) wmb(); enable_rx_dma(sw); - return received; + return budget; } static void eth_set_desc(struct sw *sw, struct _tx_ring *tx_ring, int index,