summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/vlan_mon/vlan_mon.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/vlan_mon/vlan_mon.c b/drivers/vlan_mon/vlan_mon.c
index 6f9217d..d486df7 100644
--- a/drivers/vlan_mon/vlan_mon.c
+++ b/drivers/vlan_mon/vlan_mon.c
@@ -431,23 +431,22 @@ static void vlan_dev_clean(struct vlan_dev *d, struct net_device *dev, struct li
struct net_device *vd;
for (i = 1; i < 4096; i++) {
- if (d->vid[0][i / (8*sizeof(long))] & (1lu << (i % (8*sizeof(long)))) &&
- d->vid[1][i / (8*sizeof(long))] & (1lu << (i % (8*sizeof(long)))))
- continue;
+ if (d->busy[i / (8*sizeof(long))] & (1lu << (i % (8*sizeof(long))))) {
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
- vd = __vlan_find_dev_deep(dev, i);
+ vd = __vlan_find_dev_deep(dev, i);
#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0)
- vd = __vlan_find_dev_deep(dev, htons(ETH_P_8021Q), i);
- if (!vd)
- vd = __vlan_find_dev_deep(dev, htons(ETH_P_8021AD), i);
+ vd = __vlan_find_dev_deep(dev, htons(ETH_P_8021Q), i);
+ if (!vd)
+ vd = __vlan_find_dev_deep(dev, htons(ETH_P_8021AD), i);
#else
- vd = __vlan_find_dev_deep_rcu(dev, htons(ETH_P_8021Q), i);
- if (!vd)
- vd = __vlan_find_dev_deep_rcu(dev, htons(ETH_P_8021AD), i);
+ vd = __vlan_find_dev_deep_rcu(dev, htons(ETH_P_8021Q), i);
+ if (!vd)
+ vd = __vlan_find_dev_deep_rcu(dev, htons(ETH_P_8021AD), i);
#endif
- if (vd)
- vd->rtnl_link_ops->dellink(vd, list);
+ if (vd)
+ vd->rtnl_link_ops->dellink(vd, list);
+ }
}
}