|
@@ -91,7 +91,12 @@ EXPORT_SYMBOL(__vlan_find_dev_deep);
|
|
|
|
|
|
struct net_device *vlan_dev_real_dev(const struct net_device *dev)
|
|
struct net_device *vlan_dev_real_dev(const struct net_device *dev)
|
|
{
|
|
{
|
|
- return vlan_dev_priv(dev)->real_dev;
|
|
|
|
|
|
+ struct net_device *ret = vlan_dev_priv(dev)->real_dev;
|
|
|
|
+
|
|
|
|
+ while (is_vlan_dev(ret))
|
|
|
|
+ ret = vlan_dev_priv(ret)->real_dev;
|
|
|
|
+
|
|
|
|
+ return ret;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(vlan_dev_real_dev);
|
|
EXPORT_SYMBOL(vlan_dev_real_dev);
|
|
|
|
|