Commit e1622baf authored by Nicolas Dichtel's avatar Nicolas Dichtel Committed by David S. Miller

dev: set iflink to 0 for virtual interfaces

Virtual interfaces are supposed to set an iflink value != of their ifindex.
It was not the case for some of them, like vxlan, bond or bridge.
Let's set iflink to 0 when dev->rtnl_link_ops is set.
Signed-off-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7a66bbc9
...@@ -672,6 +672,10 @@ int dev_get_iflink(const struct net_device *dev) ...@@ -672,6 +672,10 @@ int dev_get_iflink(const struct net_device *dev)
if (dev->netdev_ops && dev->netdev_ops->ndo_get_iflink) if (dev->netdev_ops && dev->netdev_ops->ndo_get_iflink)
return dev->netdev_ops->ndo_get_iflink(dev); return dev->netdev_ops->ndo_get_iflink(dev);
/* If dev->rtnl_link_ops is set, it's a virtual interface. */
if (dev->rtnl_link_ops)
return 0;
return dev->ifindex; return dev->ifindex;
} }
EXPORT_SYMBOL(dev_get_iflink); EXPORT_SYMBOL(dev_get_iflink);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment