Re: [GIT] Networking

David Miller
2013-05-02T06:45:59Z

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Wed, 1 May 2013 21:55:38 -0700

> I think the positions of those bits matter, and adding
> NETIF_F_HW_VLAN_STAG_*_BIT randomly in the middle broke things. That's
> backed up by the fact that we have things like
>
> __UNUSED_NETIF_F_1
>
> and
>
> /**/NETIF_F_GSO_SHIFT, /* keep the order of SKB_GSO_* bits */
> NETIF_F_TSO_BIT /* ... TCPv4 segmentation */
> = NETIF_F_GSO_SHIFT,
>
> in that array. There is some ordering, and there is some meaning to
> the bit numbers, and adding the *_STAG_* bits in the middle broke some
> subtle dependency.

The other thing this does is it pushes some bits past bit 31.

netdev_features_t, which holds these masks, is 64-bit but we've
already seen one place in a driver where a 32-bit value was being
used.

I'll look more deeply into this, thanks.