Skip to content

Commit

Permalink
VLAN: kill_vid is only useful for VLAN filtering devices
Browse files Browse the repository at this point in the history
The interface for network device VLAN extension was confusing.
The kill_vid function is only really useful for devices that do
hardware filtering. Devices that only do VLAN receiption without
filtering were being forced to provide the hook, and there were
bugs in those devices.

Many drivers had kill_vid routine that called vlan_group_set_device, with
NULL, but that is done already.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
  • Loading branch information
Stephen Hemminger authored and Jeff Garzik committed Jun 3, 2007
1 parent e68a8c1 commit d2d1acd
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions net/8021q/vlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -240,10 +240,8 @@ static int unregister_vlan_dev(struct net_device *real_dev,
* interlock with HW accelerating devices or SW vlan
* input packet processing.
*/
if (real_dev->features &
(NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER)) {
if (real_dev->features & NETIF_F_HW_VLAN_FILTER)
real_dev->vlan_rx_kill_vid(real_dev, vlan_id);
}

vlan_group_set_device(grp, vlan_id, NULL);
synchronize_net();
Expand Down Expand Up @@ -409,16 +407,14 @@ static struct net_device *register_vlan_device(const char *eth_IF_name,
}

if ((real_dev->features & NETIF_F_HW_VLAN_RX) &&
(real_dev->vlan_rx_register == NULL ||
real_dev->vlan_rx_kill_vid == NULL)) {
!real_dev->vlan_rx_register) {
printk(VLAN_DBG "%s: Device %s has buggy VLAN hw accel.\n",
__FUNCTION__, real_dev->name);
goto out_put_dev;
}

if ((real_dev->features & NETIF_F_HW_VLAN_FILTER) &&
(real_dev->vlan_rx_add_vid == NULL ||
real_dev->vlan_rx_kill_vid == NULL)) {
(!real_dev->vlan_rx_add_vid || !real_dev->vlan_rx_kill_vid)) {
printk(VLAN_DBG "%s: Device %s has buggy VLAN hw accel.\n",
__FUNCTION__, real_dev->name);
goto out_put_dev;
Expand Down

0 comments on commit d2d1acd

Please sign in to comment.