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

Jeff Garzik
2006-08-09T07:20:11Z

Peter Zijlstra wrote:
> On Wed, 2006-08-09 at 02:30 -0400, Jeff Garzik wrote:
>> David Miller wrote:
>>> From: Daniel Phillips <phillips@google.com>
>>> 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.