Merge tag 'asoc-v4.1' into asoc-next
[firefly-linux-kernel-4.4.55.git] / net / ipv6 / ip6_output.c
index 7e80b61b51ff474db6c188218b70f12709209256..36cf0ab685a00d57fbdc6787ba77116dae638f21 100644 (file)
@@ -542,7 +542,8 @@ int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
 {
        struct sk_buff *frag;
        struct rt6_info *rt = (struct rt6_info *)skb_dst(skb);
-       struct ipv6_pinfo *np = skb->sk ? inet6_sk(skb->sk) : NULL;
+       struct ipv6_pinfo *np = skb->sk && !dev_recursion_level() ?
+                               inet6_sk(skb->sk) : NULL;
        struct ipv6hdr *tmp_hdr;
        struct frag_hdr *fh;
        unsigned int mtu, hlen, left, len;