aboutsummaryrefslogtreecommitdiffstats
path: root/net/8021q/vlan.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-04-03 01:35:23 -0400
committerDavid S. Miller <davem@davemloft.net>2008-04-03 01:35:23 -0400
commite1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a (patch)
tree4e1ca325dde22f1ac21c9da0be509e87e922e604 /net/8021q/vlan.c
parentc0f39322c335412339dec16ebfd2a05ceba5ebcf (diff)
parent802fb176d8c635ae42da31b80841c26e8c7338a0 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/s2io.c
Diffstat (limited to 'net/8021q/vlan.c')
-rw-r--r--net/8021q/vlan.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 694be86e4490..5975ec3be7f3 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -384,17 +384,35 @@ static void vlan_sync_address(struct net_device *dev,
384 memcpy(vlan->real_dev_addr, dev->dev_addr, ETH_ALEN); 384 memcpy(vlan->real_dev_addr, dev->dev_addr, ETH_ALEN);
385} 385}
386 386
387static void __vlan_device_event(struct net_device *dev, unsigned long event)
388{
389 switch (event) {
390 case NETDEV_CHANGENAME:
391 vlan_proc_rem_dev(dev);
392 if (vlan_proc_add_dev(dev) < 0)
393 pr_warning("8021q: failed to change proc name for %s\n",
394 dev->name);
395 break;
396 }
397}
398
387static int vlan_device_event(struct notifier_block *unused, unsigned long event, 399static int vlan_device_event(struct notifier_block *unused, unsigned long event,
388 void *ptr) 400 void *ptr)
389{ 401{
390 struct net_device *dev = ptr; 402 struct net_device *dev = ptr;
391 struct vlan_group *grp = __vlan_find_group(dev->ifindex); 403 struct vlan_group *grp;
392 int i, flgs; 404 int i, flgs;
393 struct net_device *vlandev; 405 struct net_device *vlandev;
394 406
395 if (dev_net(dev) != &init_net) 407 if (dev_net(dev) != &init_net)
396 return NOTIFY_DONE; 408 return NOTIFY_DONE;
397 409
410 if (is_vlan_dev(dev)) {
411 __vlan_device_event(dev, event);
412 goto out;
413 }
414
415 grp = __vlan_find_group(dev->ifindex);
398 if (!grp) 416 if (!grp)
399 goto out; 417 goto out;
400 418