Linux Kernel Selftest development
 help / color / mirror / Atom feed
From: Eduard Zingerman <eddyz87@gmail.com>
To: Geliang Tang <geliang@kernel.org>,
	Andrii Nakryiko <andrii@kernel.org>,
	 Mykola Lysenko <mykolal@fb.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Martin KaFai Lau <martin.lau@linux.dev>,
	Song Liu <song@kernel.org>,
	Yonghong Song <yonghong.song@linux.dev>,
	John Fastabend <john.fastabend@gmail.com>,
	KP Singh <kpsingh@kernel.org>,
	Stanislav Fomichev <sdf@google.com>, Hao Luo <haoluo@google.com>,
	Jiri Olsa <jolsa@kernel.org>,  Shuah Khan <shuah@kernel.org>
Cc: Geliang Tang <tanggeliang@kylinos.cn>,
	bpf@vger.kernel.org,  linux-kselftest@vger.kernel.org
Subject: Re: [PATCH bpf-next v2 09/14] selftests/bpf: Add function pointer for __start_server
Date: Fri, 12 Apr 2024 20:23:31 +0300	[thread overview]
Message-ID: <feacc31cee7270080baf291d854f956896493fe0.camel@gmail.com> (raw)
In-Reply-To: <eedd84f856fe2c9101ab4b7086276e4830370839.1712796967.git.tanggeliang@kylinos.cn>

On Thu, 2024-04-11 at 09:03 +0800, Geliang Tang wrote:


[...]

>  static int __start_server(int type, int protocol, const struct sockaddr *addr,
> -			  socklen_t addrlen, int timeout_ms, bool reuseport)
> +			  socklen_t addrlen, int timeout_ms,
> +			  int *(*setsockopt)(int fd, int val), int val)

There is no need for setsockopt to return pointer to int,
the code could be simplified e.g. as in the patch below (on top of this series):

---

diff --git a/tools/testing/selftests/bpf/network_helpers.c b/tools/testing/selftests/bpf/network_helpers.c
index f6810bb54edc..30ac03322c61 100644
--- a/tools/testing/selftests/bpf/network_helpers.c
+++ b/tools/testing/selftests/bpf/network_helpers.c
@@ -80,7 +80,7 @@ int settimeo(int fd, int timeout_ms)
 
 static int __start_server(int type, int protocol, const struct sockaddr *addr,
 			  socklen_t addrlen, int timeout_ms,
-			  int *(*setsockopt)(int fd, int val), int val)
+			  int (*setsockopt)(int fd, int val), int val)
 {
 	int fd;
 
@@ -167,7 +167,7 @@ int *start_reuseport_server(int family, int type, const char *addr_str,
 		return NULL;
 
 	fds[0] = __start_server(type, 0, (struct sockaddr *)&addr, addrlen,
-				timeout_ms, (void *)setsockopt_reuse, 1);
+				timeout_ms, setsockopt_reuse, 1);
 	if (fds[0] == -1)
 		goto close_fds;
 	nr_fds = 1;
@@ -177,7 +177,7 @@ int *start_reuseport_server(int family, int type, const char *addr_str,
 
 	for (; nr_fds < nr_listens; nr_fds++) {
 		fds[nr_fds] = __start_server(type, 0, (struct sockaddr *)&addr,
-					     addrlen, timeout_ms, (void *)setsockopt_reuse, 1);
+					     addrlen, timeout_ms, setsockopt_reuse, 1);
 		if (fds[nr_fds] == -1)
 			goto close_fds;
 	}
@@ -195,7 +195,7 @@ int start_server_addr(const struct sockaddr *addr, socklen_t addrlen, int type)
 }
 
 int start_server_setsockopt(const struct sockaddr *addr, socklen_t addrlen, int type,
-			    int *(*setsockopt)(int fd, int val), int val)
+			    int (*setsockopt)(int fd, int val), int val)
 {
 	return __start_server(type, 0, addr, addrlen, 0, setsockopt, val);
 }
diff --git a/tools/testing/selftests/bpf/network_helpers.h b/tools/testing/selftests/bpf/network_helpers.h
index 543295230062..0f0f1803e0c8 100644
--- a/tools/testing/selftests/bpf/network_helpers.h
+++ b/tools/testing/selftests/bpf/network_helpers.h
@@ -56,7 +56,7 @@ int *start_reuseport_server(int family, int type, const char *addr_str,
 			    unsigned int nr_listens);
 int start_server_addr(const struct sockaddr *addr, socklen_t addrlen, int type);
 int start_server_setsockopt(const struct sockaddr *addr, socklen_t addrlen, int type,
-			    int *(*setsockopt)(int fd, int val), int val);
+			    int (*setsockopt)(int fd, int val), int val);
 void free_fds(int *fds, unsigned int nr_close_fds);
 int connect_to_addr(const struct sockaddr_storage *addr, socklen_t len, int type);
 int connect_to_fd(int server_fd, int timeout_ms);
diff --git a/tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c b/tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c
index 4fee4b343255..0c39170d543a 100644
--- a/tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c
+++ b/tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c
@@ -97,7 +97,7 @@ static int start_server_lo(void)
 	if (make_sockaddr(AF_INET, "127.0.0.1", 0, &addr, &addrlen))
 		return -1;
 	return start_server_setsockopt((struct sockaddr *)&addr, addrlen,
-				       SOCK_STREAM, (void *)setsockopt_loop, 0);
+				       SOCK_STREAM, setsockopt_loop, 0);
 }
 
 static void run_test(int cgroup_fd)


  reply	other threads:[~2024-04-12 17:23 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-11  1:03 [PATCH bpf-next v2 00/14] use start_server and connect_to helpers Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 01/14] selftests/bpf: Add start_server_addr helper Geliang Tang
2024-04-11 22:06   ` Martin KaFai Lau
2024-04-11  1:03 ` [PATCH bpf-next v2 02/14] selftests/bpf: Use start_server_addr in cls_redirect Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 03/14] selftests/bpf: Use connect_to_addr " Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 04/14] selftests/bpf: Use start_server_addr in sk_assign Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 05/14] selftests/bpf: Use connect_to_addr " Geliang Tang
2024-04-12 16:38   ` Eduard Zingerman
2024-04-11  1:03 ` [PATCH bpf-next v2 06/14] selftests/bpf: Use log_err in network_helpers Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 07/14] selftests/bpf: Use start_server_addr in test_sock_addr Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 08/14] selftests/bpf: Use connect_to_addr " Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 09/14] selftests/bpf: Add function pointer for __start_server Geliang Tang
2024-04-12 17:23   ` Eduard Zingerman [this message]
2024-04-11  1:03 ` [PATCH bpf-next v2 10/14] selftests/bpf: Add start_server_setsockopt helper Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 11/14] selftests/bpf: Use start_server_setsockopt in sockopt_inherit Geliang Tang
2024-04-11 22:10   ` Martin KaFai Lau
2024-04-12 17:35     ` Eduard Zingerman
2024-04-11  1:03 ` [PATCH bpf-next v2 12/14] selftests/bpf: Use connect_to_fd " Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 13/14] selftests/bpf: Use start_server_* in test_tcp_check_syncookie Geliang Tang
2024-04-11  1:03 ` [PATCH bpf-next v2 14/14] selftests/bpf: Use connect_to_addr " Geliang Tang
2024-04-12 18:52 ` [PATCH bpf-next v2 00/14] use start_server and connect_to helpers Eduard Zingerman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=feacc31cee7270080baf291d854f956896493fe0.camel@gmail.com \
    --to=eddyz87@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=geliang@kernel.org \
    --cc=haoluo@google.com \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=kpsingh@kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=martin.lau@linux.dev \
    --cc=mykolal@fb.com \
    --cc=sdf@google.com \
    --cc=shuah@kernel.org \
    --cc=song@kernel.org \
    --cc=tanggeliang@kylinos.cn \
    --cc=yonghong.song@linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox