On Wed, Oct 20, 2021 at 12:43:57PM -0500, Eric W. Biederman wrote: > Reading the history it is unclear why default_trap_handler calls > do_exit. It is not even menthioned in the commit where the change > happened. My best guess is that because it is unknown why the > exception happened it was desired to guarantee the process never > returned to userspace. > > Using do_exit(SIGSEGV) has the problem that it will only terminate one > thread of a process, leaving the process in an undefined state. > > Use force_sigsegv(SIGSEGV) instead which effectively has the same > behavior except that is uses the ordinary signal mechanism and > terminates all threads of a process and is generally well defined. > > Cc: Heiko Carstens <hca@xxxxxxxxxxxxx> > Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx> > Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx> > Cc: linux-s390@xxxxxxxxxxxxxxx > Fixes: ca2ab03237ec ("[PATCH] s390: core changes") > History Tree: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git > Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx> Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> -- Kees Cook