diff options
author | Felix Fietkau <nbd@openwrt.org> | 2016-01-18 22:38:14 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2016-01-18 22:38:14 +0000 |
commit | 67cfc02b8b78261ede31020494515b924d31cbce (patch) | |
tree | 4729459a8f423ac13be84d40cd6556f9a7afa54f /target/linux/cns3xxx/files/drivers | |
parent | c60b92ae54eb137b1072ac6e4c1a48431f4a0df1 (diff) | |
download | master-187ad058-67cfc02b8b78261ede31020494515b924d31cbce.tar.gz master-187ad058-67cfc02b8b78261ede31020494515b924d31cbce.tar.bz2 master-187ad058-67cfc02b8b78261ede31020494515b924d31cbce.zip |
cns3xxx: fix a ethernet driver napi poll handling bug
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48333 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/cns3xxx/files/drivers')
-rw-r--r-- | target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c | 3 |
1 files changed, 2 insertions, 1 deletions
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, |