Thread (9 messages) 9 messages, 3 authors, 2007-06-01

Re: [PATCH]: sky2: Fix VLAN unregistration

From: Patrick McHardy <hidden>
Date: 2007-06-01 15:17:56

Stephen Hemminger wrote:
On Thu, 31 May 2007 19:37:07 +0200
Patrick McHardy [off-list ref] wrote:

quoted
Stephen Hemminger wrote:
quoted
On Sun, 27 May 2007 20:44:04 +0200
Patrick McHardy [off-list ref] wrote:


quoted
Fix sky2 disabling VLAN completely when the first vid is unregistered.

For some reason the VLAN code insists on the driver providing a
vlan_rx_kill_vid function even if only NETIF_F_HW_VLAN_RX and not
NETIF_F_HW_VLAN_FILTER is set, so this patch keeps an empty
function. This seems to be a bug though, vlan_rx_add_vid is only
required with NETIF_F_HW_VLAN_FILTER. Ben?

Reading other drivers, it looks like a better patch would be to
handle mode change in both set and kill.

The VLAN code tracks registered VIDs and will always call
vlan_rx_register(NULL) when the last VID is unregistered,
so this is not necessary.

Then should others be fixed...
	tg3, bnx2, r8169, gianfar, s2io, 8139cp, acenic, ...

tg3 and r8169 both look fine, they only unregister a single VID
within kill_vid and rely on VLAN to call rx_register(NULL) when
the group is unregistered (haven't looked at the others).

As I wrote in my previous mails, they do have a part that looks
unnecessary

        tg3_full_lock(tp, 0);
        vlan_group_set_device(tp->vlgrp, vid, NULL);

        tg3_full_unlock(tp);

since the vid is also removed by the VLAN code itself and locking
doesn't seem to be necessary because the VLAN hwaccel rx helper
deals with removal races itself.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help