Thread (24 messages) 24 messages, 3 authors, 2011-08-31

Re: [PATCH 7/7] bnx2x: expose HW RX VLAN stripping toggle

flat view

From: Michał Mirosław <hidden>
Date: 2011-08-30 20:09:02

W dniu 30 sierpnia 2011 21:30 użytkownik Michal Schmidt
[off-list ref] napisał:
On 08/30/2011 08:27 PM, Michał Mirosław wrote:
quoted
It seems rather convoluted and unnecessary that you mirror
NETIF_F_HW_VLAN_RX in bp->flags
This mirroring is for the benefit of functions called indirectly from
bnx2x_set_features(). They cannot look at dev->features for
NETIF_F_HW_VLAN_RX because it's not set before ->ndo_set_features() returns.
You can cheat in ndo_set_features in this case. Just set/clear
NETIF_F_HW_VLAN_RX bit in dev->features before you call those
functions (but please leave a comment there explaining why!). This is
allowed because if ndo_set_features fails it needs to fix
dev->features itself, and if it succeeds dev->features will be
replaced with exactly what was passed to ndo_set_features. So, unless
you need to check whether the VLAN stripping state changed in those
functions, then you can get rid of this copy.
quoted
and then also in fp->flags.  Are the
fp->flags strictly mirroring hardware state (as in: there is no way
the states can differ in any point in time where the flags are
tested)?
Yes. This is the purpose of the second mirroring of the flag.
quoted
For this to be true, the two functions above need to be
called only without releasing a lock between them that is also taken
by receive handler.
The flag propagates from bp->flags to fp->flags between unloading and
reloading the NIC. The receive handler cannot run at the time.
quoted
Isn't there a flag in the rx descriptor of a
packet that says if VLAN was stripped? (All that flag keeping would be
unnecessary then.)
There is no such flag, AFAIK.
Thanks for explanation!

Best Regards,
Michał Mirosław
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help