[PATCH] net: socket: add missing declaration for update_socket_protocol

Chia-Liang Wang posted 1 patch 1 week, 2 days ago
include/net/sock.h | 2 ++
1 file changed, 2 insertions(+)
[PATCH] net: socket: add missing declaration for update_socket_protocol
Posted by Chia-Liang Wang 1 week, 2 days ago
When building with C=1, sparse reports the following warning:

net/socket.c:1735:21: warning: symbol 'update_socket_protocol' was not declared. Should it be static?

The function update_socket_protocol() is defined as __weak, intended
to be overwritten by architecture-specific implementations. Therefore,
it cannot be static.

Add a declaration in include/net/sock.h to fix this sparse warning.

Signed-off-by: Chia-Liang Wang <a0979625527@icloud.com>
---
 include/net/sock.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/net/sock.h b/include/net/sock.h
index 60bcb13f045c..2081b6599edc 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -3103,4 +3103,6 @@ static inline bool sk_is_readable(struct sock *sk)
 
 	return false;
 }
+
+int update_socket_protocol(int family, int type, int protocol);
 #endif	/* _SOCK_H */
-- 
2.43.0
Re: [PATCH] net: socket: add missing declaration for update_socket_protocol
Posted by Kuniyuki Iwashima 1 week, 2 days ago
On Fri, Nov 21, 2025 at 9:11 PM Chia-Liang Wang <wjliang627@gmail.com> wrote:
>
> When building with C=1, sparse reports the following warning:
>
> net/socket.c:1735:21: warning: symbol 'update_socket_protocol' was not declared. Should it be static?
>
> The function update_socket_protocol() is defined as __weak, intended
> to be overwritten by architecture-specific implementations. Therefore,
> it cannot be static.
>
> Add a declaration in include/net/sock.h to fix this sparse warning.

Sparse just doesn't understand the context.

The function is wrapped with __bpf_hook_start() that
should suppress the real warning by compilers.


>
> Signed-off-by: Chia-Liang Wang <a0979625527@icloud.com>
> ---
>  include/net/sock.h | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/include/net/sock.h b/include/net/sock.h
> index 60bcb13f045c..2081b6599edc 100644
> --- a/include/net/sock.h
> +++ b/include/net/sock.h
> @@ -3103,4 +3103,6 @@ static inline bool sk_is_readable(struct sock *sk)
>
>         return false;
>  }
> +
> +int update_socket_protocol(int family, int type, int protocol);
>  #endif /* _SOCK_H */
> --
> 2.43.0
>