diff options
author | Michal Kubeček <mkubecek@suse.cz> | 2013-11-15 06:18:40 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-15 17:55:48 -0500 |
commit | be9eac48274a2d9b142d6dd8567b9b2362939346 (patch) | |
tree | eb43db7c1721c7b40d7d9e7ec9958b10bcaf3d4a | |
parent | f9de11a165943a55e0fbda714caf60eaeb276a42 (diff) | |
download | op-kernel-dev-be9eac48274a2d9b142d6dd8567b9b2362939346.zip op-kernel-dev-be9eac48274a2d9b142d6dd8567b9b2362939346.tar.gz |
macvlan: introduce macvlan_dev_real_dev() helper function
Introduce helper function macvlan_dev_real_dev which returns the
underlying device of a macvlan device, similar to vlan_dev_real_dev()
for 802.1q VLAN devices.
v2: IFF_MACVLAN flag and equivalent of is_macvlan_dev() were
introduced in the meantime
v3: do BUG() if compiled without macvlan support
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/linux/if_macvlan.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/if_macvlan.h b/include/linux/if_macvlan.h index c270285..84ba5ac 100644 --- a/include/linux/if_macvlan.h +++ b/include/linux/if_macvlan.h @@ -119,4 +119,21 @@ extern int macvlan_link_register(struct rtnl_link_ops *ops); extern netdev_tx_t macvlan_start_xmit(struct sk_buff *skb, struct net_device *dev); +#if IS_ENABLED(CONFIG_MACVLAN) +static inline struct net_device * +macvlan_dev_real_dev(const struct net_device *dev) +{ + struct macvlan_dev *macvlan = netdev_priv(dev); + + return macvlan->lowerdev; +} +#else +static inline struct net_device * +macvlan_dev_real_dev(const struct net_device *dev) +{ + BUG(); + return NULL; +} +#endif + #endif /* _LINUX_IF_MACVLAN_H */ |