Subject: Re: New NAPI API: Need for netif_napi_remove() ?!

From: "Kok, Auke" <[email-masked]>
Date: Mon, 10 Sep 2007 17:27:33 -0700

Kok, Auke wrote:
> David,
> 
>  From an old thread:
> 
>  > 5) Since, in the NETPOLL case, netif_napi_init() adds the NAPI struct
>  >   to the per-device list I renamed it to netif_napi_add().  Currently
>  >   no teardown is really necessary, anything that would need to be done
>  >   would be driver internal, so I didn't create the corollary
>  >   netif_napi_remove() for the time being.  Let's not add it unless it
>  >   really becomes necessary.
> 
> while coding the NAPI API changes into the ixgbe driver, I notice that I'm in 
> need for an implementation for netif_napi_remove(). The ixgbe driver itself 
> already modifies it's polling routing on open() and close() based on whether it 
> was able to acquire MSI-X vectors or not, and can thus logically change as the 
> system suspends/resumes and new hardware is inserted that change the balance in 
> the MSI-X vectors in the system. Or, even more bluntly, all MSI support is 
> disabled and we want the driver to come up in legacy mode and use a completely 
> different poll routine alltogether. We can't do this at probe time.
> 
> In any case I think we have a legitimate case for netif_napi_remove() to be 
> implemented.

hm, I spoke too soon, I think I can get by for now by just modifying 
adapter->napi.poll when needed, and this would be clean enough for now. This 
might change as I enable multiqueue in this driver later though.

Auke