net: stream: fix TCP references when INET is not enabled
authorRandy Dunlap <rdunlap@infradead.org>
Wed, 18 Nov 2020 19:44:38 +0000 (11:44 -0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 20 Nov 2020 20:13:55 +0000 (12:13 -0800)
Fix build of net/core/stream.o when CONFIG_INET is not enabled.
Fixes these build errors (sample):

ld: net/core/stream.o: in function `sk_stream_write_space':
(.text+0x27e): undefined reference to `tcp_stream_memory_free'
ld: (.text+0x29c): undefined reference to `tcp_stream_memory_free'
ld: (.text+0x2ab): undefined reference to `tcp_stream_memory_free'
ld: net/core/stream.o: in function `sk_stream_wait_memory':
(.text+0x5a1): undefined reference to `tcp_stream_memory_free'
ld: (.text+0x5bf): undefined reference to `tcp_stream_memory_free'

Fixes: 1c5f2ced136a ("tcp: avoid indirect call to tcp_stream_memory_free()")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://lore.kernel.org/r/20201118194438.674-1-rdunlap@infradead.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/sock.h

index 093b517..80469c2 100644 (file)
@@ -1271,10 +1271,15 @@ static inline bool __sk_stream_memory_free(const struct sock *sk, int wake)
        if (READ_ONCE(sk->sk_wmem_queued) >= READ_ONCE(sk->sk_sndbuf))
                return false;
 
+#ifdef CONFIG_INET
        return sk->sk_prot->stream_memory_free ?
                INDIRECT_CALL_1(sk->sk_prot->stream_memory_free,
                                tcp_stream_memory_free,
                                sk, wake) : true;
+#else
+       return sk->sk_prot->stream_memory_free ?
+               sk->sk_prot->stream_memory_free(sk, wake) : true;
+#endif
 }
 
 static inline bool sk_stream_memory_free(const struct sock *sk)