cns3xxx: fix a ethernet driver napi poll handling bug

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48333
This commit is contained in:
Felix Fietkau 2016-01-18 22:38:14 +00:00
parent 136747c564
commit 91278df70e

View File

@ -717,6 +717,7 @@ static int eth_poll(struct napi_struct *napi, int budget)
if (!received) { if (!received) {
napi_complete(napi); napi_complete(napi);
enable_irq(sw->rx_irq); enable_irq(sw->rx_irq);
budget = 0;
/* if rx descriptors are full schedule another poll */ /* if rx descriptors are full schedule another poll */
if (rx_ring->desc[(i-1) & (RX_DESCS-1)].cown) 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(); wmb();
enable_rx_dma(sw); enable_rx_dma(sw);
return received; return budget;
} }
static void eth_set_desc(struct sw *sw, struct _tx_ring *tx_ring, int index, static void eth_set_desc(struct sw *sw, struct _tx_ring *tx_ring, int index,