c6x: add support for TIF_NOTIFY_SIGNAL
authorJens Axboe <axboe@kernel.dk>
Fri, 9 Oct 2020 20:35:34 +0000 (14:35 -0600)
committerJens Axboe <axboe@kernel.dk>
Sat, 12 Dec 2020 16:17:34 +0000 (09:17 -0700)
Wire up TIF_NOTIFY_SIGNAL handling for c6x.

Cc: linux-c6x-dev@linux-c6x.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
arch/c6x/include/asm/thread_info.h
arch/c6x/kernel/asm-offsets.c
arch/c6x/kernel/signal.c

index f703828..dd8913d 100644 (file)
@@ -82,6 +82,7 @@ struct thread_info *current_thread_info(void)
 #define TIF_SIGPENDING         2       /* signal pending */
 #define TIF_NEED_RESCHED       3       /* rescheduling necessary */
 #define TIF_RESTORE_SIGMASK    4       /* restore signal mask in do_signal() */
+#define TIF_NOTIFY_SIGNAL      5       /* signal notifications exist */
 
 #define TIF_MEMDIE             17      /* OOM killer killed process */
 
index 0f8fde4..4a264ef 100644 (file)
@@ -116,6 +116,7 @@ void foo(void)
        DEFINE(_TIF_NOTIFY_RESUME, (1<<TIF_NOTIFY_RESUME));
        DEFINE(_TIF_SIGPENDING, (1<<TIF_SIGPENDING));
        DEFINE(_TIF_NEED_RESCHED, (1<<TIF_NEED_RESCHED));
+       DEFINE(_TIF_NOTIFY_SIGNAL, (1<<TIF_NOTIFY_SIGNAL));
 
        DEFINE(_TIF_ALLWORK_MASK, TIF_ALLWORK_MASK);
        DEFINE(_TIF_WORK_MASK, TIF_WORK_MASK);
index a3f15b9..862460c 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/syscalls.h>
 #include <linux/tracehook.h>
 
+#include <asm/asm-offsets.h>
 #include <asm/ucontext.h>
 #include <asm/cacheflush.h>
 
@@ -313,7 +314,7 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, u32 thread_info_flags,
                                 int syscall)
 {
        /* deal with pending signal delivery */
-       if (thread_info_flags & (1 << TIF_SIGPENDING))
+       if (thread_info_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL))
                do_signal(regs, syscall);
 
        if (thread_info_flags & (1 << TIF_NOTIFY_RESUME))