Hi Jay,

+       if ((work_done < budget) || !netif_running(poll_dev)) {
+quit_polling:
+               netif_rx_complete(poll_dev, napi);
+
+               if (!test_bit(__ATL1_DOWN, &adapter->flags))
+                       atlx_irq_enable(adapter);
+       }

Not enough :)
If netif_running() is false, it can make problem.
The problem occurs calling netif_rx_complete with work_done == budget.
If do that, net_rx_action would do poll list double deletion.

Since we had reached a consensus on fixing it without each drivers 
modifications, there is no best solution for that problem for
now. I'm expecting Dave or others work for net-core.
(http://lkml.org/lkml/2007/12/20/600)

IMHO, atl1_clean should wait for work_done != budget even though netif_running 
is false at this time.
At least, It would not make oops.

Thanks,
Joonwoo

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to