Merge tag 'for-5.12/io_uring-2021-02-25' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / net / ipv6 / ip6_icmp.c
index 70c8c2f..9e35748 100644 (file)
@@ -33,23 +33,25 @@ int inet6_unregister_icmp_sender(ip6_icmp_send_t *fn)
 }
 EXPORT_SYMBOL(inet6_unregister_icmp_sender);
 
-void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)
+void __icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info,
+                  const struct inet6_skb_parm *parm)
 {
        ip6_icmp_send_t *send;
 
        rcu_read_lock();
        send = rcu_dereference(ip6_icmp_send);
        if (send)
-               send(skb, type, code, info, NULL);
+               send(skb, type, code, info, NULL, parm);
        rcu_read_unlock();
 }
-EXPORT_SYMBOL(icmpv6_send);
+EXPORT_SYMBOL(__icmpv6_send);
 #endif
 
 #if IS_ENABLED(CONFIG_NF_NAT)
 #include <net/netfilter/nf_conntrack.h>
 void icmpv6_ndo_send(struct sk_buff *skb_in, u8 type, u8 code, __u32 info)
 {
+       struct inet6_skb_parm parm = { 0 };
        struct sk_buff *cloned_skb = NULL;
        enum ip_conntrack_info ctinfo;
        struct in6_addr orig_ip;
@@ -57,7 +59,7 @@ void icmpv6_ndo_send(struct sk_buff *skb_in, u8 type, u8 code, __u32 info)
 
        ct = nf_ct_get(skb_in, &ctinfo);
        if (!ct || !(ct->status & IPS_SRC_NAT)) {
-               icmpv6_send(skb_in, type, code, info);
+               __icmpv6_send(skb_in, type, code, info, &parm);
                return;
        }
 
@@ -72,7 +74,7 @@ void icmpv6_ndo_send(struct sk_buff *skb_in, u8 type, u8 code, __u32 info)
 
        orig_ip = ipv6_hdr(skb_in)->saddr;
        ipv6_hdr(skb_in)->saddr = ct->tuplehash[0].tuple.src.u3.in6;
-       icmpv6_send(skb_in, type, code, info);
+       __icmpv6_send(skb_in, type, code, info, &parm);
        ipv6_hdr(skb_in)->saddr = orig_ip;
 out:
        consume_skb(cloned_skb);