--- linux-2.4.17/net/8021q/vlan.c Sat Jan 19 15:25:21 2002 +++ linux-2.4.17stefan/net/8021q/vlan.c Tue Mar 19 22:35:46 2002 @@ -468,6 +468,23 @@ struct net_device *vlandev = NULL; switch (event) { + case NETDEV_CHANGE: + for (grp = p802_1Q_vlan_list; grp != NULL; grp = grp->next) { + for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) { + vlandev = grp->vlan_devices[i]; + if (vlandev && VLAN_DEV_INFO(vlandev)->real_dev == dev) { + if (netif_carrier_ok(vlandev) != netif_carrier_ok(dev)) { + if (netif_carrier_ok(dev)) { + netif_carrier_on(vlandev); + } else { + netif_carrier_off(vlandev); + } + } + } + } + } + break; + case NETDEV_CHANGEADDR: /* Ignore for now */ break;