Re: [PATCH 1/5] VLAN: kill_vid is only useful for VLAN filtering devices

2007-06-03 Thread Jeff Garzik

Stephen Hemminger wrote:

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 [EMAIL PROTECTED]


applied 1-5 to #upstream-fixes


-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/5] VLAN: kill_vid is only useful for VLAN filtering devices

2007-06-01 Thread Stephen Hemminger
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 [EMAIL PROTECTED]

--- a/net/8021q/vlan.c  2007-06-01 08:18:32.0 -0700
+++ b/net/8021q/vlan.c  2007-06-01 08:28:02.0 -0700
@@ -240,10 +240,8 @@ static int unregister_vlan_dev(struct ne
 * 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();
@@ -409,16 +407,14 @@ static struct net_device *register_vlan_
}
 
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;

-- 
Stephen Hemminger [EMAIL PROTECTED]

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html