[PATCH] net: Fix build when CONFIG_INET is not enabled

From: Ricardo Ribalda
Date: Fri Feb 11 2022 - 11:40:33 EST


If the kernel is configured with CONFIG_NET, but without CONFIG_INET we
get the following error when building:

sock.c:(.text+0x4c17): undefined reference to `__sk_defer_free_flush'

Lets move __sk_defer_free_flush to sock.c

Signed-off-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx>
---
net/core/sock.c | 14 ++++++++++++++
net/ipv4/tcp.c | 14 --------------
2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/net/core/sock.c b/net/core/sock.c
index 4ff806d71921..b93b93497e7e 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -2045,6 +2045,20 @@ static void __sk_destruct(struct rcu_head *head)
sk_prot_free(sk->sk_prot_creator, sk);
}

+void __sk_defer_free_flush(struct sock *sk)
+{
+ struct llist_node *head;
+ struct sk_buff *skb, *n;
+
+ head = llist_del_all(&sk->defer_list);
+ llist_for_each_entry_safe(skb, n, head, ll_node) {
+ prefetch(n);
+ skb_mark_not_on_list(skb);
+ __kfree_skb(skb);
+ }
+}
+EXPORT_SYMBOL(__sk_defer_free_flush);
+
void sk_destruct(struct sock *sk)
{
bool use_call_rcu = sock_flag(sk, SOCK_RCU_FREE);
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 02cb275e5487..bc5b5c29d5c4 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1589,20 +1589,6 @@ void tcp_cleanup_rbuf(struct sock *sk, int copied)
tcp_send_ack(sk);
}

-void __sk_defer_free_flush(struct sock *sk)
-{
- struct llist_node *head;
- struct sk_buff *skb, *n;
-
- head = llist_del_all(&sk->defer_list);
- llist_for_each_entry_safe(skb, n, head, ll_node) {
- prefetch(n);
- skb_mark_not_on_list(skb);
- __kfree_skb(skb);
- }
-}
-EXPORT_SYMBOL(__sk_defer_free_flush);
-
static void tcp_eat_recv_skb(struct sock *sk, struct sk_buff *skb)
{
__skb_unlink(skb, &sk->sk_receive_queue);
--
2.35.1.265.g69c8d7142f-goog