: Proc entry is not renamed when vlan device name changes.
Subsystems (2)
PATCH 1/1 : Proc entry is not renamed when vlan device name changes.
This may lead to situations, when each of two proc entries produce data for the other's device.
Looks like a BUG, so this patch is for net-2.6. It will not apply to net-2.6.26 since dev->nd_net access is replaced with dev_net(dev) one. Should I rework the patch to fit 2.6.26?
---
net/8021q/vlan.c +19 -1
@@ -374,17 +374,35 @@ static void vlan_sync_address(struct net_device *dev,memcpy (vlan->real_dev_addr, dev->dev_addr,ETH_ALEN ); } +static void __vlan_device_event (struct net_device *dev,unsigned long event) +{ +switch (event) { +case NETDEV_CHANGENAME : +vlan_proc_rem_dev (dev); +if (vlan_proc_add_dev (dev) <0 ) +pr_warning ("8021q: failed to change proc name for %s\n" , + dev->name); +break ; + } +} +static int vlan_device_event (struct notifier_block *unused,unsigned long event,void *ptr) {struct net_device *dev = ptr; -struct vlan_group *grp =__vlan_find_group (dev->ifindex); +struct vlan_group *grp;int i, flgs;struct net_device *vlandev;if (dev->nd_net != &init_net)return NOTIFY_DONE ; +if (is_vlan_dev (dev)) { +__vlan_device_event (dev, event); + goto out; + } + + grp =__vlan_find_group (dev->ifindex);if (!grp) goto out;
net/8021q/vlan.h +5 -0
@@ -45,4 +45,9 @@ void vlan_netlink_fini(void);extern struct rtnl_link_ops vlan_link_ops; +static inline int is_vlan_dev (struct net_device *dev) +{ +return dev->priv_flags &IFF_802_1Q_VLAN ; +} +#endif /* !(__BEN_VLAN_802_1Q_INC__) */
net/8021q/vlanproc.c +0 -5
@@ -210,11 +210,6 @@ int vlan_proc_rem_dev(struct net_device *vlandev)* The following few functions build the content of /proc/net/vlan/config */ -static inline int is_vlan_dev (struct net_device *dev) -{ -return dev->priv_flags &IFF_802_1Q_VLAN ; -} -/* start read of /proc/net/vlan/config */ static void *vlan_seq_start (struct seq_file *seq,loff_t *pos)__acquires (dev_base_lock)
Quoted 4 lines · Pavel Emelyanov
This may lead to situations, when each of two proc entries produce data for the other's device.
Looks like a BUG, so this patch is for net-2.6. It will not apply to net-2.6.26 since
dev->nd_netaccess is replaced withdev_net(dev)one. Should I rework the patch to fit 2.6.26?
No, since its a bugfix it should go in net-2.6. Dave, please apply.
David Miller
maintainerFrom: Patrick McHardy <[email protected]>
Date: Tue, 01 Apr 2008 08:53:12 +0200
Quoted 9 lines
Quoted 6 lines · Pavel Emelyanov
This may lead to situations, when each of two proc entries produce data for the other's device.
Looks like a BUG, so this patch is for net-2.6. It will not apply to net-2.6.26 since
dev->nd_netaccess is replaced withdev_net(dev)one. Should I rework the patch to fit 2.6.26?No, since its a bugfix it should go in net-2.6. Dave, please apply.
Done.