Subject: Re: [RFC][PATCH 8/9] 3c59x driver conversion

From: Jeff Garzik <[email-masked]>
Date: Wed, 09 Aug 2006 03:20:11 -0400

Peter Zijlstra wrote:
> On Wed, 2006-08-09 at 02:30 -0400, Jeff Garzik wrote:
>> David Miller wrote:
>>> From: Daniel Phillips <[email-masked]>
>>> Date: Tue, 08 Aug 2006 22:51:20 -0700
>>>
>>>> Elaborate please.  Do you think that all drivers should be updated to
>>>> fix the broken blockdev semantics, making NETIF_F_MEMALLOC redundant?
>>>> If so, I trust you will help audit for it?
>>> I think he's saying that he doesn't think your code is yet a
>>> reasonable way to solve the problem, and therefore doesn't belong
>>> upstream.
>> Pretty much.  It is completely non-sensical to add NETIF_F_MEMALLOC, 
>> when it should be blindingly obvious that every net driver will be 
>> allocating memory, and every net driver could potentially be used with 
>> NBD and similar situations.
> 
> Sure, but until every single driver is converted I'd like to warn people
> about the fact that their setups is not up to expectations. Iff all
> drivers are converted I'll be the forst to submit a patch that removes
> the feature flag.

A temporary-for-years flag is not a good approach.  The flag is not 
_needed_ for technical reasons, but for supposed user expectation reasons.

Rather, just go ahead and convert drivers to netdev_alloc_skb() where 
people care.  If someone suddenly gets a burr up their ass about the 
sunlance or epic100 driver deadlocking on NBD, then they can convert it 
or complain loudly themselves.

Overall, a good solution needs to be uniform across all net drivers. 
NETIF_F_MEMALLOC is just _encouraging_ people to be slackers and delay 
converting other drivers, creating two classes of drivers, the "haves" 
and the "have nots".

Just make a big netdev_alloc_skb() patch that converts most users. 
netdev_alloc_skb() is a good thing to use, because it builds an 
association with struct net_device and the allocation.

	Jeff

P.S.  Since netdev_alloc_skb() calls skb_reserve(), you need to take 
that into account.  That's a bug in current patches.