Commit 656be283 authored by Tiwei Bie's avatar Tiwei Bie Committed by Johannes Berg
Browse files

um: Handle SIGCHLD in seccomp mode like other IRQ signals



In seccomp mode, SIGCHLD serves as the child reaper IRQ. So, let's
handle it in the same way as other IRQ signals, including preventing
them from nesting with each other and allowing interrupted syscalls
to be automatically restarted.

Signed-off-by: default avatarTiwei Bie <tiwei.btw@antgroup.com>
Link: https://patch.msgid.link/20260106001228.1531146-3-tiwei.btw@antgroup.com


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent f68b2d5a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <as-layout.h>
#include <kern_util.h>
#include <os.h>
#include <skas.h>
#include <sysdep/mcontext.h>
#include <um_malloc.h>
#include <sys/ucontext.h>
@@ -224,6 +225,8 @@ void set_handler(int sig)
	sigaddset(&action.sa_mask, SIGIO);
	sigaddset(&action.sa_mask, SIGWINCH);
	sigaddset(&action.sa_mask, SIGALRM);
	if (using_seccomp)
		sigaddset(&action.sa_mask, SIGCHLD);

	if (sig == SIGSEGV)
		flags |= SA_NODEFER;