diff options
author | David S. Miller <davem@davemloft.net> | 2019-05-02 22:14:21 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-05-02 22:14:21 -0400 |
commit | ff24e4980a68d83090a02fda081741a410fe8eef (patch) | |
tree | 4d874dfcaf2bb8c3abc2446af9447a983402c0ae /net/xfrm/xfrm_interface.c | |
parent | 26f146ed971c0e4a264ce525d7a66a71ef73690d (diff) | |
parent | ea9866793d1e925b4d320eaea409263b2a568f38 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Three trivial overlapping conflicts.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_interface.c')
-rw-r--r-- | net/xfrm/xfrm_interface.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/net/xfrm/xfrm_interface.c b/net/xfrm/xfrm_interface.c index b9f118530db6..ad3a2555c517 100644 --- a/net/xfrm/xfrm_interface.c +++ b/net/xfrm/xfrm_interface.c | |||
@@ -70,17 +70,28 @@ static struct xfrm_if *xfrmi_lookup(struct net *net, struct xfrm_state *x) | |||
70 | return NULL; | 70 | return NULL; |
71 | } | 71 | } |
72 | 72 | ||
73 | static struct xfrm_if *xfrmi_decode_session(struct sk_buff *skb) | 73 | static struct xfrm_if *xfrmi_decode_session(struct sk_buff *skb, |
74 | unsigned short family) | ||
74 | { | 75 | { |
75 | struct xfrmi_net *xfrmn; | 76 | struct xfrmi_net *xfrmn; |
76 | int ifindex; | ||
77 | struct xfrm_if *xi; | 77 | struct xfrm_if *xi; |
78 | int ifindex = 0; | ||
78 | 79 | ||
79 | if (!secpath_exists(skb) || !skb->dev) | 80 | if (!secpath_exists(skb) || !skb->dev) |
80 | return NULL; | 81 | return NULL; |
81 | 82 | ||
83 | switch (family) { | ||
84 | case AF_INET6: | ||
85 | ifindex = inet6_sdif(skb); | ||
86 | break; | ||
87 | case AF_INET: | ||
88 | ifindex = inet_sdif(skb); | ||
89 | break; | ||
90 | } | ||
91 | if (!ifindex) | ||
92 | ifindex = skb->dev->ifindex; | ||
93 | |||
82 | xfrmn = net_generic(xs_net(xfrm_input_state(skb)), xfrmi_net_id); | 94 | xfrmn = net_generic(xs_net(xfrm_input_state(skb)), xfrmi_net_id); |
83 | ifindex = skb->dev->ifindex; | ||
84 | 95 | ||
85 | for_each_xfrmi_rcu(xfrmn->xfrmi[0], xi) { | 96 | for_each_xfrmi_rcu(xfrmn->xfrmi[0], xi) { |
86 | if (ifindex == xi->dev->ifindex && | 97 | if (ifindex == xi->dev->ifindex && |