diff options
author | Alex Shi <alex.shi@linaro.org> | 2016-07-21 13:58:19 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2016-07-21 13:58:19 +0800 |
commit | 74b60e9f6f938d0cd4c7a71e583aee3cc6c5fbba (patch) | |
tree | 15cbca70f3f6d7e10da7d82154a78e6ca35dca8c /drivers/net/ethernet/freescale/fec_main.c | |
parent | f24f1475658431d60bcd4e6e5de951ba1663dd43 (diff) | |
parent | 1d508e233d21a7848cf54d7d03b40dac2d9ea873 (diff) |
Merge branch 'linux-linaro-lsk-v4.1' into linux-linaro-lsk-v4.1-rtlsk-v4.1-16.07-rt
Conflicts:
mm/swap.c
Diffstat (limited to 'drivers/net/ethernet/freescale/fec_main.c')
-rw-r--r-- | drivers/net/ethernet/freescale/fec_main.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 570390b5cd42..67aec18dd76c 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -1546,9 +1546,15 @@ fec_enet_rx(struct net_device *ndev, int budget) struct fec_enet_private *fep = netdev_priv(ndev); for_each_set_bit(queue_id, &fep->work_rx, FEC_ENET_MAX_RX_QS) { - clear_bit(queue_id, &fep->work_rx); - pkt_received += fec_enet_rx_queue(ndev, + int ret; + + ret = fec_enet_rx_queue(ndev, budget - pkt_received, queue_id); + + if (ret < budget - pkt_received) + clear_bit(queue_id, &fep->work_rx); + + pkt_received += ret; } return pkt_received; } |