aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/ibm/emac/mal.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/net/ethernet/ibm/emac/mal.c b/drivers/net/ethernet/ibm/emac/mal.c
index dac564c25440..909f9b6698b5 100644
--- a/drivers/net/ethernet/ibm/emac/mal.c
+++ b/drivers/net/ethernet/ibm/emac/mal.c
@@ -442,15 +442,11 @@ static int mal_poll(struct napi_struct *napi, int budget)
442 if (unlikely(mc->ops->peek_rx(mc->dev) || 442 if (unlikely(mc->ops->peek_rx(mc->dev) ||
443 test_bit(MAL_COMMAC_RX_STOPPED, &mc->flags))) { 443 test_bit(MAL_COMMAC_RX_STOPPED, &mc->flags))) {
444 MAL_DBG2(mal, "rotting packet" NL); 444 MAL_DBG2(mal, "rotting packet" NL);
445 if (napi_reschedule(napi)) 445 if (!napi_reschedule(napi))
446 mal_disable_eob_irq(mal);
447 else
448 MAL_DBG2(mal, "already in poll list" NL);
449
450 if (budget > 0)
451 goto again;
452 else
453 goto more_work; 446 goto more_work;
447
448 mal_disable_eob_irq(mal);
449 goto again;
454 } 450 }
455 mc->ops->poll_tx(mc->dev); 451 mc->ops->poll_tx(mc->dev);
456 } 452 }