Messages in this thread | | | From | "Joonwoo Park" <> | Subject | RE: [PATCH 25/26] [REVISED] atl1: add NAPI support | Date | Wed, 2 Jan 2008 11:56:36 +0900 |
| |
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
| |