Patch "selftests/bpf: Fix error compiling bpf_iter_setsockopt.c with musl libc" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    selftests/bpf: Fix error compiling bpf_iter_setsockopt.c with musl libc

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     selftests-bpf-fix-error-compiling-bpf_iter_setsockop.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8b127a47ee35e179141047310e9fc0f81e022844
Author: Tony Ambardar <tony.ambardar@xxxxxxxxx>
Date:   Mon Jul 22 22:54:30 2024 -0700

    selftests/bpf: Fix error compiling bpf_iter_setsockopt.c with musl libc
    
    [ Upstream commit 7b10f0c227ce3fa055d601f058dc411092a62a78 ]
    
    Existing code calls getsockname() with a 'struct sockaddr_in6 *' argument
    where a 'struct sockaddr *' argument is declared, yielding compile errors
    when building for mips64el/musl-libc:
    
      bpf_iter_setsockopt.c: In function 'get_local_port':
      bpf_iter_setsockopt.c:98:30: error: passing argument 2 of 'getsockname' from incompatible pointer type [-Werror=incompatible-pointer-types]
         98 |         if (!getsockname(fd, &addr, &addrlen))
            |                              ^~~~~
            |                              |
            |                              struct sockaddr_in6 *
      In file included from .../netinet/in.h:10,
                       from .../arpa/inet.h:9,
                       from ./test_progs.h:17,
                       from bpf_iter_setsockopt.c:5:
      .../sys/socket.h:391:23: note: expected 'struct sockaddr * restrict' but argument is of type 'struct sockaddr_in6 *'
        391 | int getsockname (int, struct sockaddr *__restrict, socklen_t *__restrict);
            |                       ^
      cc1: all warnings being treated as errors
    
    This compiled under glibc only because the argument is declared to be a
    "funky" transparent union which includes both types above. Explicitly cast
    the argument to allow compiling for both musl and glibc.
    
    Fixes: eed92afdd14c ("bpf: selftest: Test batching and bpf_(get|set)sockopt in bpf tcp iter")
    Signed-off-by: Tony Ambardar <tony.ambardar@xxxxxxxxx>
    Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx>
    Acked-by: Geliang Tang <geliang@xxxxxxxxxx>
    Link: https://lore.kernel.org/bpf/f41def0f17b27a23b1709080e4e3f37f4cc11ca9.1721713597.git.tony.ambardar@xxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c b/tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c
index b52ff8ce34db8..16bed9dd8e6a3 100644
--- a/tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c
+++ b/tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c
@@ -95,7 +95,7 @@ static unsigned short get_local_port(int fd)
 	struct sockaddr_in6 addr;
 	socklen_t addrlen = sizeof(addr);
 
-	if (!getsockname(fd, &addr, &addrlen))
+	if (!getsockname(fd, (struct sockaddr *)&addr, &addrlen))
 		return ntohs(addr.sin6_port);
 
 	return 0;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux