]> git.itanic.dy.fi Git - linux-stable/commit
xfrm: pass struct net to xfrm_decode_session wrappers
authorFlorian Westphal <fw@strlen.de>
Wed, 4 Oct 2023 16:09:51 +0000 (18:09 +0200)
committerSteffen Klassert <steffen.klassert@secunet.com>
Fri, 6 Oct 2023 06:31:53 +0000 (08:31 +0200)
commit2b1dc6285c3f6e6fcc9e25bf8cd0ca66f2443697
tree02438f922910930eba9b0b4b368c2b38377f2eac
parente377240a8eb06fb3ea1e77d3e252d79bbfa5d490
xfrm: pass struct net to xfrm_decode_session wrappers

Preparation patch, extra arg is not used.
No functional changes intended.

This is needed to replace the xfrm session decode functions with
the flow dissector.

skb_flow_dissect() cannot be used as-is, because it attempts to deduce the
'struct net' to use for bpf program fetch from skb->sk or skb->dev, but
xfrm code path can see skbs that have neither sk or dev filled in.

So either flow dissector needs to try harder, e.g. by also trying
skb->dst->dev, or we have to pass the struct net explicitly.

Passing the struct net doesn't look too bad to me, most places
already have it available or can derive it from the output device.

Reported-by: kernel test robot <oliver.sang@intel.com>
Link: https://lore.kernel.org/netdev/202309271628.27fd2187-oliver.sang@intel.com/
Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
include/net/xfrm.h
net/ipv4/icmp.c
net/ipv4/ip_vti.c
net/ipv4/netfilter.c
net/ipv6/icmp.c
net/ipv6/ip6_vti.c
net/ipv6/netfilter.c
net/netfilter/nf_nat_proto.c
net/xfrm/xfrm_interface_core.c
net/xfrm/xfrm_policy.c