um: Add support for TIF_NOTIFY_SIGNAL
authorJens Axboe <axboe@kernel.dk>
Thu, 29 Oct 2020 16:23:12 +0000 (10:23 -0600)
committerRichard Weinberger <richard@nod.at>
Sun, 13 Dec 2020 21:21:02 +0000 (22:21 +0100)
Wire up TIF_NOTIFY_SIGNAL handling for um.

Cc: linux-um@lists.infradead.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Acked-By: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/include/asm/thread_info.h
arch/um/kernel/process.c

index 4c19ce4c49f18dbc7011e249d056342e3b31c5c9..3b1cb8b3b1864deca470f97bcc28b2849b788085 100644 (file)
@@ -57,6 +57,7 @@ static inline struct thread_info *current_thread_info(void)
 #define TIF_SYSCALL_TRACE      0       /* syscall trace active */
 #define TIF_SIGPENDING         1       /* signal pending */
 #define TIF_NEED_RESCHED       2       /* rescheduling necessary */
+#define TIF_NOTIFY_SIGNAL      3       /* signal notifications exist */
 #define TIF_RESTART_BLOCK      4
 #define TIF_MEMDIE             5       /* is terminating due to OOM killer */
 #define TIF_SYSCALL_AUDIT      6
@@ -67,6 +68,7 @@ static inline struct thread_info *current_thread_info(void)
 #define _TIF_SYSCALL_TRACE     (1 << TIF_SYSCALL_TRACE)
 #define _TIF_SIGPENDING                (1 << TIF_SIGPENDING)
 #define _TIF_NEED_RESCHED      (1 << TIF_NEED_RESCHED)
+#define _TIF_NOTIFY_SIGNAL     (1 << TIF_NOTIFY_SIGNAL)
 #define _TIF_MEMDIE            (1 << TIF_MEMDIE)
 #define _TIF_SYSCALL_AUDIT     (1 << TIF_SYSCALL_AUDIT)
 #define _TIF_SECCOMP           (1 << TIF_SECCOMP)
index 9505a7e87396a68a1576dc929a9958219f2247cc..0fcdc374a9a1a2aee5d9049e8b93a1be3ccd3fad 100644 (file)
@@ -99,7 +99,8 @@ void interrupt_end(void)
 
        if (need_resched())
                schedule();
-       if (test_thread_flag(TIF_SIGPENDING))
+       if (test_thread_flag(TIF_SIGPENDING) ||
+           test_thread_flag(TIF_NOTIFY_SIGNAL))
                do_signal(regs);
        if (test_thread_flag(TIF_NOTIFY_RESUME))
                tracehook_notify_resume(regs);