]> www.infradead.org Git - users/griffoul/linux.git/commitdiff
selftest: net: Fix weird setsockopt() in bind_bhash.c.
authorKuniyuki Iwashima <kuniyu@google.com>
Wed, 3 Sep 2025 22:28:51 +0000 (22:28 +0000)
committerJakub Kicinski <kuba@kernel.org>
Thu, 4 Sep 2025 14:30:04 +0000 (07:30 -0700)
bind_bhash.c passes (SO_REUSEADDR | SO_REUSEPORT) to setsockopt().

In the asm-generic definition, the value happens to match with the
bare SO_REUSEPORT, (2 | 15) == 15, but not on some arch.

arch/alpha/include/uapi/asm/socket.h:18:#define SO_REUSEADDR 0x0004
arch/alpha/include/uapi/asm/socket.h:24:#define SO_REUSEPORT 0x0200
arch/mips/include/uapi/asm/socket.h:24:#define SO_REUSEADDR 0x0004 /* Allow reuse of local addresses.  */
arch/mips/include/uapi/asm/socket.h:33:#define SO_REUSEPORT 0x0200 /* Allow local address and port reuse.  */
arch/parisc/include/uapi/asm/socket.h:12:#define SO_REUSEADDR 0x0004
arch/parisc/include/uapi/asm/socket.h:18:#define SO_REUSEPORT 0x0200
arch/sparc/include/uapi/asm/socket.h:13:#define SO_REUSEADDR 0x0004
arch/sparc/include/uapi/asm/socket.h:20:#define SO_REUSEPORT 0x0200
include/uapi/asm-generic/socket.h:12:#define SO_REUSEADDR 2
include/uapi/asm-generic/socket.h:27:#define SO_REUSEPORT 15

Let's pass SO_REUSEPORT only.

Fixes: c35ecb95c448 ("selftests/net: Add test for timing a bind request to a port with a populated bhash entry")
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250903222938.2601522-1-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/bind_bhash.c

index 57ff67a3751eb3bcb880244b0eb407a667d31d76..da04b0b19b73ca1bb8ad0424b01fd8a8b6506e81 100644 (file)
@@ -75,7 +75,7 @@ static void *setup(void *arg)
        int *array = (int *)arg;
 
        for (i = 0; i < MAX_CONNECTIONS; i++) {
-               sock_fd = bind_socket(SO_REUSEADDR | SO_REUSEPORT, setup_addr);
+               sock_fd = bind_socket(SO_REUSEPORT, setup_addr);
                if (sock_fd < 0) {
                        ret = sock_fd;
                        pthread_exit(&ret);
@@ -103,7 +103,7 @@ int main(int argc, const char *argv[])
 
        setup_addr = use_v6 ? setup_addr_v6 : setup_addr_v4;
 
-       listener_fd = bind_socket(SO_REUSEADDR | SO_REUSEPORT, setup_addr);
+       listener_fd = bind_socket(SO_REUSEPORT, setup_addr);
        if (listen(listener_fd, 100) < 0) {
                perror("listen failed");
                return -1;