Subject: Re: [SKY2]: Fix VLAN unregistration

From: Patrick McHardy <[email-masked]>
Date: Tue, 29 May 2007 12:57:31 +0200

Ben Greear wrote:
> Patrick McHardy wrote:
> 
>> 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?
>>   
> 
> I believe DaveM did most of the vlan hw-accel work.  It would be easy
> enough to check
> for a null function before calling the vlan_rx_kill_vid function and
> relax the checks
> based on the flags, but there may be valid reasons to keep this as is. 

Most drivers are using vlan_rx_kill_vid to remove a vid from the
group under their local local lock, which seems unnecessary since
the VLAN code calls synchronize_net before freeing it and also
does the removal itself. A few others have empty functions and
8139cp seems to have the same bug as sky2. In all cases it doesn't
seem to be needed for drivers without NETIF_F_HW_VLAN_FILTER.