diff --git a/drivers/net/e100.c b/drivers/net/e100.c index 8c7e2d17e75f1e048d564fe5f272744a9081effc..1e56c8eea35fdfa41f39b0e0372cd9ee15873c65 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c @@ -1671,8 +1671,10 @@ static irqreturn_t e100_intr(int irq, void *dev_id, struct pt_regs *regs) if(stat_ack & stat_ack_rnr) nic->ru_running = RU_SUSPENDED; - e100_disable_irq(nic); - netif_rx_schedule(netdev); + if(likely(netif_rx_schedule_prep(netdev))) { + e100_disable_irq(nic); + __netif_rx_schedule(netdev); + } return IRQ_HANDLED; }