I've been on vacation so I missed most of this thread. I'm just catching up now...
> Ok I converted everything with Rusty's suggestion to move napi_struct > out of net_device, this was mostly mechanical but some devices took > some unanticipated amount of work. Actually you missed drivers/infiniband/ulp/ipoib, which has used NAPI since 2.6.22. I can take a stab at the conversion soon if you want... > Another area of consternation are drivers that were using > netif_rx_reschedule(), as that interface was removed because it > doesn't fit well with the caller managing the dev->quota et al. I > left race conditions in the drivers that were using that interface, > but they should still basically work nonetheless. ...but this is a problem for IPoIB. The underlying IB stuff only allows us to register what is essentially a one-shot edge-triggered interrupt. So there is a race between calling netif_rx_complete() and calling ib_req_notify_cq() (which enables the interrupt), since the interrupt might never happen if a packet arrives between the two calls. In the current driver we are OK because ib_req_notify_cq() can return a hint if an event was missed, but to use this hint we need a way to restart the NAPI poll without getting into trouble if the interrupt handler calls netif_rx_schedule() too. Thanks, Roland - 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