mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-06 07:34:03 -04:00
net: vlan: Make is_vlan_dev() a stub when VLAN is not configured
Add a stub implementation of is_vlan_dev() that returns false when VLAN support is not compiled in (CONFIG_VLAN_8021Q=n). This allows us to compile-out VLAN-dependent dead code when it is not needed. This also resolves the following compilation error when: * CONFIG_VLAN_8021Q=n * CONFIG_OBJTOOL=y * CONFIG_OBJTOOL_WERROR=y drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.o: error: objtool: parse_mirred.isra.0+0x370: mlx5e_tc_act_vlan_add_push_action() missing __noreturn in .c/.h or NORETURN() in noreturns.h The error occurs because objtool cannot determine that unreachable BUG() (which doesn't return) calls in VLAN code paths are actually dead code when VLAN support is disabled. Signed-off-by: Gal Pressman <gal@nvidia.com> Link: https://patch.msgid.link/20250616132626.1749331-2-gal@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
6786dd7a25
commit
2de1ba0887
@@ -79,11 +79,6 @@ static inline struct vlan_ethhdr *skb_vlan_eth_hdr(const struct sk_buff *skb)
|
||||
/* found in socket.c */
|
||||
extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *));
|
||||
|
||||
static inline bool is_vlan_dev(const struct net_device *dev)
|
||||
{
|
||||
return dev->priv_flags & IFF_802_1Q_VLAN;
|
||||
}
|
||||
|
||||
#define skb_vlan_tag_present(__skb) (!!(__skb)->vlan_all)
|
||||
#define skb_vlan_tag_get(__skb) ((__skb)->vlan_tci)
|
||||
#define skb_vlan_tag_get_id(__skb) ((__skb)->vlan_tci & VLAN_VID_MASK)
|
||||
@@ -200,6 +195,11 @@ struct vlan_dev_priv {
|
||||
#endif
|
||||
};
|
||||
|
||||
static inline bool is_vlan_dev(const struct net_device *dev)
|
||||
{
|
||||
return dev->priv_flags & IFF_802_1Q_VLAN;
|
||||
}
|
||||
|
||||
static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev)
|
||||
{
|
||||
return netdev_priv(dev);
|
||||
@@ -237,6 +237,11 @@ extern void vlan_vids_del_by_dev(struct net_device *dev,
|
||||
extern bool vlan_uses_dev(const struct net_device *dev);
|
||||
|
||||
#else
|
||||
static inline bool is_vlan_dev(const struct net_device *dev)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline struct net_device *
|
||||
__vlan_find_dev_deep_rcu(struct net_device *real_dev,
|
||||
__be16 vlan_proto, u16 vlan_id)
|
||||
|
||||
Reference in New Issue
Block a user