hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/net/ipv6/tcpv6_offload.c
....@@ -1,22 +1,19 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * IPV6 GSO/GRO offload support
34 * Linux INET6 implementation
45 *
5
- * This program is free software; you can redistribute it and/or
6
- * modify it under the terms of the GNU General Public License
7
- * as published by the Free Software Foundation; either version
8
- * 2 of the License, or (at your option) any later version.
9
- *
106 * TCPv6 GSO/GRO support
117 */
8
+#include <linux/indirect_call_wrapper.h>
129 #include <linux/skbuff.h>
1310 #include <net/protocol.h>
1411 #include <net/tcp.h>
1512 #include <net/ip6_checksum.h>
1613 #include "ip6_offload.h"
1714
18
-static struct sk_buff *tcp6_gro_receive(struct list_head *head,
19
- struct sk_buff *skb)
15
+INDIRECT_CALLABLE_SCOPE
16
+struct sk_buff *tcp6_gro_receive(struct list_head *head, struct sk_buff *skb)
2017 {
2118 /* Don't bother verifying checksum if we're going to flush anyway. */
2219 if (!NAPI_GRO_CB(skb)->flush &&
....@@ -29,7 +26,7 @@
2926 return tcp_gro_receive(head, skb);
3027 }
3128
32
-static int tcp6_gro_complete(struct sk_buff *skb, int thoff)
29
+INDIRECT_CALLABLE_SCOPE int tcp6_gro_complete(struct sk_buff *skb, int thoff)
3330 {
3431 const struct ipv6hdr *iph = ipv6_hdr(skb);
3532 struct tcphdr *th = tcp_hdr(skb);