So the problem arises because the headers we have in userspace might be older and not match what we have in the kernel. In that case, the actual value of AF_MAX in the userspace headers might be a valid protocol family in the new kernel. That happens relatively often for us because we support different kernel versions at the same time in a given Ubuntu series. An alternative is to use the headers we have in the kernel tree, but I believe that might cause other issues. On Mon, Sep 16, 2019 at 10:09:13AM -0600, shuah wrote: > On 9/16/19 9:03 AM, Marcelo Henrique Cerri wrote: > > Use INT_MAX instead of AF_MAX, since libc might have a smaller value > > of AF_MAX than the kernel, what causes the test to fail. > > > > Signed-off-by: Marcelo Henrique Cerri > > --- > > tools/testing/selftests/net/socket.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/tools/testing/selftests/net/socket.c b/tools/testing/selftests/net/socket.c > > index afca1ead677f..10e75ba90124 100644 > > --- a/tools/testing/selftests/net/socket.c > > +++ b/tools/testing/selftests/net/socket.c > > @@ -6,6 +6,7 @@ > > #include > > #include > > #include > > +#include > > struct socket_testcase { > > int domain; > > @@ -24,7 +25,10 @@ struct socket_testcase { > > }; > > static struct socket_testcase tests[] = { > > - { AF_MAX, 0, 0, -EAFNOSUPPORT, 0 }, > > + /* libc might have a smaller value of AF_MAX than the kernel > > + * actually supports, so use INT_MAX instead. > > + */ > > + { INT_MAX, 0, 0, -EAFNOSUPPORT, 0 }, > > { AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 1 }, > > { AF_INET, SOCK_DGRAM, IPPROTO_TCP, -EPROTONOSUPPORT, 1 }, > > { AF_INET, SOCK_DGRAM, IPPROTO_UDP, 0, 1 }, > > > > What failure are you seeing? It sounds arbitrary to use INT_MAX > instead of AF_MAX. I think it is important to understand the > failure first. > > Please note that AF_MAX is widely used in the kernel. > > thanks, > -- Shuah -- Regards, Marcelo