For consideration, this patch seems to work for me. I'm not sure why we ever listed to these events. I've only tested on a NIC that doesn't support hw-accel at the moment..will test with e1000 later.
Thanks, Ben -- Ben Greear <[EMAIL PROTECTED]> Candela Technologies Inc http://www.candelatech.com
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index c4209c8..acbf0ff 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -615,6 +615,11 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event, } break; +#if 0 + /* Don't propagate management state from base dev to VLANs. If you do this, + * then if you 'ifconfig eth0 down; ifconfig eth0 up', you also lose all the + * routes for eth0.* VLANs. --Ben + */ case NETDEV_DOWN: /* Put all VLANs for this dev in the down state too. */ for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) { @@ -644,6 +649,7 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event, dev_change_flags(vlandev, flgs | IFF_UP); } break; +#endif case NETDEV_UNREGISTER: /* Delete all VLANs for this dev. */