Prepare to track skb metadata location independently of MAC header offset. Following changes will make skb_metadata_set() record where metadata ends relative to skb->head. Hence the helper must be called when skb->data points just past the metadata area. Tweak XDP generic mode accordingly. Signed-off-by: Jakub Sitnicki --- net/core/dev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/core/dev.c index 69515edd17bc..70cf90d5c73c 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -5461,8 +5461,11 @@ u32 bpf_prog_run_generic_xdp(struct sk_buff *skb, struct xdp_buff *xdp, break; case XDP_PASS: metalen = xdp->data - xdp->data_meta; - if (metalen) + if (metalen) { + __skb_push(skb, mac_len); skb_metadata_set(skb, metalen); + __skb_pull(skb, mac_len); + } break; } -- 2.43.0