Subject: Re: [RFC] split NAPI from network device.

From: Divy Le Ray <[email-masked]>
Date: Tue, 20 Feb 2007 23:39:55 -0800

David Miller wrote:
> From: Stephen Hemminger <[email-masked]>
> Date: Wed, 13 Dec 2006 15:46:35 -0800
>
>   
>> Split off NAPI part from network device, this patch is build tested
>> only! It breaks kernel API for network devices, and only three examples
>> are fixed (skge, sky2, and tg3).
>>
>> 1. Decomposition allows different NAPI <-> network device
>>    Some hardware has N devices for one IRQ, others like MSI-X
>>    want multiple receive's for one device.
>>
>> 2. Cleanup locking with netpoll
>>
>> 3. Change poll callback arguements and semantics
>>
>> 4. Make softnet_data static (only in dev.c)
>>
>> Old:
>> 	dev->poll(dev, &budget)
>> 	returns 1 or 0
>> 	requeu if returns 1
>>
>> New:
>> 	napi->poll(napi, quota)
>> 	returns # of elements processed
>> 	requeue based on status
>>
>> Signed-off-by: Stephen Hemminger <[email-masked]>
>>     
>
> I rebuffed this patch against current 2.6.x GIT and fixed all of
> the drivers.
>
>   
Hi Dave,

I applied the patch to test the chelsio drivers.
The compilation of the forcedeth driver fails if CONFIG_FORCEDETH_NAPI 
is not set.
/opt/sources/linux-2.6/drivers/net/forcedeth.c: In function `nv_nic_irq':
/opt/sources/linux-2.6/drivers/net/forcedeth.c:2866: error: structure 
has no member named `weight'
/opt/sources/linux-2.6/drivers/net/forcedeth.c: In function 
`nv_nic_irq_optimized':
/opt/sources/linux-2.6/drivers/net/forcedeth.c:2983: error: structure 
has no member named `weight'
/opt/sources/linux-2.6/drivers/net/forcedeth.c: In function `nv_nic_irq_rx':
/opt/sources/linux-2.6/drivers/net/forcedeth.c:3177: error: structure 
has no member named `weight'

The compilation of the cxgb driver also fails if CONFIG_CHELSIO_T1_NAPI 
is not set, but it has nothing to do with your patch.
I'm looking into it.

Cheers,
Divy