RE: [PATCH 25/26] [REVISED] atl1: add NAPI support

From: Joonwoo Park
Date: Tue Jan 01 2008 - 21:57:30 EST


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 linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/