aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/freescale/fec_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/freescale/fec_main.c')
-rw-r--r--drivers/net/ethernet/freescale/fec_main.c10
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 bfa10c3da35f..c9f77c324535 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -1521,9 +1521,15 @@ fec_enet_rx(struct net_device *ndev, int budget)
1521 struct fec_enet_private *fep = netdev_priv(ndev); 1521 struct fec_enet_private *fep = netdev_priv(ndev);
1522 1522
1523 for_each_set_bit(queue_id, &fep->work_rx, FEC_ENET_MAX_RX_QS) { 1523 for_each_set_bit(queue_id, &fep->work_rx, FEC_ENET_MAX_RX_QS) {
1524 clear_bit(queue_id, &fep->work_rx); 1524 int ret;
1525 pkt_received += fec_enet_rx_queue(ndev, 1525
1526 ret = fec_enet_rx_queue(ndev,
1526 budget - pkt_received, queue_id); 1527 budget - pkt_received, queue_id);
1528
1529 if (ret < budget - pkt_received)
1530 clear_bit(queue_id, &fep->work_rx);
1531
1532 pkt_received += ret;
1527 } 1533 }
1528 return pkt_received; 1534 return pkt_received;
1529} 1535}