Don't maintain two RX paths in do_rx(). Unify on recvmsg() and pass aux data only when needed.
No functional change. Signed-off-by: Joe Damato <[email protected]> --- tools/testing/selftests/net/psock_snd.c | 28 ++++++++++--------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/tools/testing/selftests/net/psock_snd.c b/tools/testing/selftests/net/psock_snd.c index d506ea19491b..b2593daca603 100644 --- a/tools/testing/selftests/net/psock_snd.c +++ b/tools/testing/selftests/net/psock_snd.c @@ -314,25 +314,22 @@ static void do_rx(int fd, int expected_len, char *expected, bool is_psock) { char cmsg_buf[1024] __attribute__((aligned(8))) = {}; bool aux = is_psock && cfg_aux_data; - struct msghdr msg = {}; - struct iovec iov[1]; + struct iovec iov = { + .iov_base = rbuf, + .iov_len = sizeof(rbuf), + }; + struct msghdr msg = { + .msg_iov = &iov, + .msg_iovlen = 1, + }; int ret; if (aux) { - iov[0].iov_base = rbuf; - iov[0].iov_len = sizeof(rbuf); - - msg.msg_iov = iov; - msg.msg_iovlen = 1; - msg.msg_control = cmsg_buf; msg.msg_controllen = sizeof(cmsg_buf); - - ret = recvmsg(fd, &msg, 0); - } else { - ret = recv(fd, rbuf, sizeof(rbuf), 0); } + ret = recvmsg(fd, &msg, 0); if (ret == -1) error(1, errno, "recv"); if (ret != expected_len) @@ -341,11 +338,8 @@ static void do_rx(int fd, int expected_len, char *expected, bool is_psock) if (memcmp(rbuf, expected, ret)) error(1, 0, "recv: data mismatch"); - if (aux) { - struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg); - - check_aux_data(cmsg, expected_len); - } + if (aux) + check_aux_data(CMSG_FIRSTHDR(&msg), expected_len); fprintf(stderr, "rx: %u\n", ret); } -- 2.53.0-Meta

