OSDN Git Service

exit/xtensa: In arch/xtensa/entry.S:Linvalid_mask call make_task_dead
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 5 Jan 2022 20:59:48 +0000 (14:59 -0600)
committerEric W. Biederman <ebiederm@xmission.com>
Sat, 8 Jan 2022 16:46:31 +0000 (10:46 -0600)
There have historically been two big uses of do_exit.  The first is
it's design use to be the guts of the exit(2) system call.  The second
use is to terminate a task after something catastrophic has happened
like a NULL pointer in kernel code.  The function make_task_dead
has been added to accomidate the second use.

The call to do_exit in Linvalidmask is clearly not a normal userspace
exit.  As failure handling there are two possible ways to go.
If userspace can trigger the issue force_exit_sig should be called.
Otherwise make_task_dead probably from the implementation of die
is appropriate.

Replace the call of do_exit in Linvalidmask with make_task_dead as
I don't know xtensa and especially xtensa assembly language well
enough to do anything else.

Link: https://lkml.kernel.org/r/YdUmN7n4W5YETUhW@zeniv-ca.linux.org.uk
Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
arch/xtensa/kernel/entry.S

index 99ab3c1..a1029a5 100644 (file)
@@ -1433,7 +1433,7 @@ ENTRY(fast_syscall_spill_registers)
        rsync
 
        movi    abi_arg0, SIGSEGV
-       abi_call        do_exit
+       abi_call        make_task_dead
 
        /* shouldn't return, so panic */