From 740e59ea20f4ebfa80c889966daf6f7ed07c70fb Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Thu, 31 Jul 2025 15:52:41 -0400 Subject: kernel: socket: Block if cmsg queue is empty Signed-off-by: Ian Moffett --- sys/kern/kern_socket.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'sys') diff --git a/sys/kern/kern_socket.c b/sys/kern/kern_socket.c index 42f31d9..065245b 100644 --- a/sys/kern/kern_socket.c +++ b/sys/kern/kern_socket.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -477,6 +478,12 @@ recvmsg(int socket, struct msghdr *msg, int flags) clp = &ksock->cmsg_list; cmsg = TAILQ_FIRST(&clp->list); + /* Empty? */ + while (cmsg == NULL) { + sched_yield(); + cmsg = TAILQ_FIRST(&clp->list); + } + while (cmsg != NULL) { cmsghdr = &cmsg->hdr; -- cgit v1.2.3