net: remove skb->vlan_present
authorEric Dumazet <edumazet@google.com>
Wed, 9 Nov 2022 09:57:58 +0000 (09:57 +0000)
committerJakub Kicinski <kuba@kernel.org>
Sat, 12 Nov 2022 02:18:05 +0000 (18:18 -0800)
commit354259fa73e2aac92ae5e19522adb69a92c15b49
tree2b9067c141413e5f6755501a3be4004985bd7ec3
parent2cf7e87fc4592bcbed77448ebba68c2925f2a2af
net: remove skb->vlan_present

skb->vlan_present seems redundant.

We can instead derive it from this boolean expression:

vlan_present = skb->vlan_proto != 0 || skb->vlan_tci != 0

Add a new union, to access both fields in a single load/store
when possible.

union {
u32 vlan_all;
struct {
__be16 vlan_proto;
__u16 vlan_tci;
};
};

This allows following patch to remove a conditional test in GRO stack.

Note:
  We move remcsum_offload to keep TC_AT_INGRESS_MASK
  and SKB_MONO_DELIVERY_TIME_MASK unchanged.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Yonghong Song <yhs@fb.com>
Acked-by: Martin KaFai Lau <martin.lau@kernel.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
arch/sparc/net/bpf_jit_comp_32.c
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
include/linux/if_vlan.h
include/linux/skbuff.h
lib/test_bpf.c
net/core/filter.c