The called netif_rx_schedule() does all the work for us: - it checks the return value of netif_rx_schedule_prep() and - if everything is ok calls __netif_rx_schedule(). Before this change, the driver received absolutely nothing. Signed-off-by: Phil Sutter --- --- a/drivers/net/korina.c 2009-01-19 23:26:19.000000000 +0100 +++ b/drivers/net/korina.c 2009-01-19 23:27:06.000000000 +0100 @@ -330,7 +330,7 @@ dmas = readl(&lp->rx_dma_regs->dmas); if (dmas & (DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR)) { - netif_rx_schedule_prep(dev, &lp->napi); + netif_rx_schedule(dev, &lp->napi); dmasm = readl(&lp->rx_dma_regs->dmasm); writel(dmasm | (DMA_STAT_DONE |