diff options
Diffstat (limited to 'net/xfrm/xfrm_interface.c')
-rw-r--r-- | net/xfrm/xfrm_interface.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_interface.c b/net/xfrm/xfrm_interface.c index 6be8c7df15bb..dbb3c1945b5c 100644 --- a/net/xfrm/xfrm_interface.c +++ b/net/xfrm/xfrm_interface.c | |||
@@ -76,10 +76,10 @@ static struct xfrm_if *xfrmi_decode_session(struct sk_buff *skb) | |||
76 | int ifindex; | 76 | int ifindex; |
77 | struct xfrm_if *xi; | 77 | struct xfrm_if *xi; |
78 | 78 | ||
79 | if (!skb->dev) | 79 | if (!secpath_exists(skb) || !skb->dev) |
80 | return NULL; | 80 | return NULL; |
81 | 81 | ||
82 | xfrmn = net_generic(dev_net(skb->dev), xfrmi_net_id); | 82 | xfrmn = net_generic(xs_net(xfrm_input_state(skb)), xfrmi_net_id); |
83 | ifindex = skb->dev->ifindex; | 83 | ifindex = skb->dev->ifindex; |
84 | 84 | ||
85 | for_each_xfrmi_rcu(xfrmn->xfrmi[0], xi) { | 85 | for_each_xfrmi_rcu(xfrmn->xfrmi[0], xi) { |