This is a note to let you know that I've just added the patch titled s390: add support for TIF_NOTIFY_SIGNAL to the 5.10-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: s390-add-support-for-tif_notify_signal.patch and it can be found in the queue-5.10 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 832028e42ad081b88ee7a72c8c9bcdea6eed3f97 Mon Sep 17 00:00:00 2001 From: Jens Axboe <axboe@xxxxxxxxx> Date: Fri, 9 Oct 2020 15:34:12 -0600 Subject: s390: add support for TIF_NOTIFY_SIGNAL From: Jens Axboe <axboe@xxxxxxxxx> [ Upstream commit 75309018a24ddfb930c51bad8f4070b9bc2c923b ] Wire up TIF_NOTIFY_SIGNAL handling for s390. Cc: linux-s390@xxxxxxxxxxxxxxx Acked-by: Heiko Carstens <hca@xxxxxxxxxxxxx> Acked-by: Sven Schnelle <svens@xxxxxxxxxxxxx> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- arch/s390/include/asm/thread_info.h | 2 ++ arch/s390/kernel/entry.S | 11 ++++++----- arch/s390/kernel/signal.c | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) --- a/arch/s390/include/asm/thread_info.h +++ b/arch/s390/include/asm/thread_info.h @@ -65,6 +65,7 @@ void arch_setup_new_exec(void); #define TIF_GUARDED_STORAGE 4 /* load guarded storage control block */ #define TIF_PATCH_PENDING 5 /* pending live patching update */ #define TIF_PGSTE 6 /* New mm's will use 4K page tables */ +#define TIF_NOTIFY_SIGNAL 7 /* signal notifications exist */ #define TIF_ISOLATE_BP 8 /* Run process with isolated BP */ #define TIF_ISOLATE_BP_GUEST 9 /* Run KVM guests with isolated BP */ @@ -82,6 +83,7 @@ void arch_setup_new_exec(void); #define TIF_SYSCALL_TRACEPOINT 27 /* syscall tracepoint instrumentation */ #define _TIF_NOTIFY_RESUME BIT(TIF_NOTIFY_RESUME) +#define _TIF_NOTIFY_SIGNAL BIT(TIF_NOTIFY_SIGNAL) #define _TIF_SIGPENDING BIT(TIF_SIGPENDING) #define _TIF_NEED_RESCHED BIT(TIF_NEED_RESCHED) #define _TIF_UPROBE BIT(TIF_UPROBE) --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S @@ -52,7 +52,8 @@ STACK_SIZE = 1 << STACK_SHIFT STACK_INIT = STACK_SIZE - STACK_FRAME_OVERHEAD - __PT_SIZE _TIF_WORK = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \ - _TIF_UPROBE | _TIF_GUARDED_STORAGE | _TIF_PATCH_PENDING) + _TIF_UPROBE | _TIF_GUARDED_STORAGE | _TIF_PATCH_PENDING | \ + _TIF_NOTIFY_SIGNAL) _TIF_TRACE = (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SECCOMP | \ _TIF_SYSCALL_TRACEPOINT) _CIF_WORK = (_CIF_ASCE_PRIMARY | _CIF_ASCE_SECONDARY | _CIF_FPU) @@ -481,8 +482,8 @@ ENTRY(system_call) #endif TSTMSK __PT_FLAGS(%r11),_PIF_SYSCALL_RESTART jo .Lsysc_syscall_restart - TSTMSK __TI_flags(%r12),_TIF_SIGPENDING - jo .Lsysc_sigpending + TSTMSK __TI_flags(%r12),(_TIF_SIGPENDING|_TIF_NOTIFY_SIGNAL) + jnz .Lsysc_sigpending TSTMSK __TI_flags(%r12),_TIF_NOTIFY_RESUME jo .Lsysc_notify_resume TSTMSK __LC_CPU_FLAGS,(_CIF_ASCE_PRIMARY|_CIF_ASCE_SECONDARY) @@ -863,8 +864,8 @@ ENTRY(io_int_handler) TSTMSK __TI_flags(%r12),_TIF_PATCH_PENDING jo .Lio_patch_pending #endif - TSTMSK __TI_flags(%r12),_TIF_SIGPENDING - jo .Lio_sigpending + TSTMSK __TI_flags(%r12),(_TIF_SIGPENDING|_TIF_NOTIFY_SIGNAL) + jnz .Lio_sigpending TSTMSK __TI_flags(%r12),_TIF_NOTIFY_RESUME jo .Lio_notify_resume TSTMSK __TI_flags(%r12),_TIF_GUARDED_STORAGE --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c @@ -472,7 +472,7 @@ void do_signal(struct pt_regs *regs) current->thread.system_call = test_pt_regs_flag(regs, PIF_SYSCALL) ? regs->int_code : 0; - if (get_signal(&ksig)) { + if (test_thread_flag(TIF_SIGPENDING) && get_signal(&ksig)) { /* Whee! Actually deliver the signal. */ if (current->thread.system_call) { regs->int_code = current->thread.system_call; Patches currently in stable-queue which might be from axboe@xxxxxxxxx are queue-5.10/x86-process-setup-io_threads-more-like-normal-user-space-threads.patch queue-5.10/powerpc-add-support-for-tif_notify_signal.patch queue-5.10/eventfd-provide-a-eventfd_signal_mask-helper.patch queue-5.10/fs-provide-locked-helper-variant-of-close_fd_get_file.patch queue-5.10/relay-fix-type-mismatch-when-allocating-memory-in-re.patch queue-5.10/eventfd-change-int-to-__u64-in-eventfd_signal-ifndef.patch queue-5.10/io_uring-pass-in-epoll_uring_wake-for-eventfd-signaling-and-wakeups.patch queue-5.10/blk-mq-fix-possible-memleak-when-register-hctx-faile.patch queue-5.10/fix-handling-of-nd-depth-on-lookup_cached-failures-in-try_to_unlazy.patch queue-5.10/net-provide-__sys_shutdown_sock-that-takes-a-socket.patch queue-5.10/task_work-unconditionally-run-task_work-from-get_signal.patch queue-5.10/openrisc-add-support-for-tif_notify_signal.patch queue-5.10/signal-add-task_sigpending-helper.patch queue-5.10/net-remove-cmsg-restriction-from-io_uring-based-send-recvmsg-calls.patch queue-5.10/alpha-add-support-for-tif_notify_signal.patch queue-5.10/nios32-add-support-for-tif_notify_signal.patch queue-5.10/ia64-don-t-call-handle_signal-unless-there-s-actually-a-signal-queued.patch queue-5.10/task_work-remove-legacy-twa_signal-path.patch queue-5.10/revert-proc-don-t-allow-async-path-resolution-of-proc-self-components.patch queue-5.10/m68k-add-support-for-tif_notify_signal.patch queue-5.10/s390-add-support-for-tif_notify_signal.patch queue-5.10/um-add-support-for-tif_notify_signal.patch queue-5.10/tools-headers-uapi-sync-openat2.h-with-the-kernel-sources.patch queue-5.10/kernel-provide-create_io_thread-helper.patch queue-5.10/iov_iter-add-helper-to-save-iov_iter-state.patch queue-5.10/arc-unbork-5.11-bootup-fix-snafu-in-_tif_notify_signal-handling.patch queue-5.10/arch-ensure-parisc-powerpc-handle-pf_io_worker-in-copy_thread.patch queue-5.10/csky-add-support-for-tif_notify_signal.patch queue-5.10/arm-add-support-for-tif_notify_signal.patch queue-5.10/kernel-stop-masking-signals-in-create_io_thread.patch queue-5.10/fs-expose-lookup_cached-through-openat2-resolve_cached.patch queue-5.10/task_work-add-helper-for-more-targeted-task_work-canceling.patch queue-5.10/nds32-add-support-for-tif_notify_signal.patch queue-5.10/signal-kill-jobctl_task_work.patch queue-5.10/hexagon-add-support-for-tif_notify_signal.patch queue-5.10/sh-add-support-for-tif_notify_signal.patch queue-5.10/riscv-add-support-for-tif_notify_signal.patch queue-5.10/h8300-add-support-for-tif_notify_signal.patch queue-5.10/io_uring-import-5.15-stable-io_uring.patch queue-5.10/sparc-add-support-for-tif_notify_signal.patch queue-5.10/blktrace-fix-output-non-blktrace-event-when-blk_clas.patch queue-5.10/eventpoll-add-epoll_uring_wake-poll-wakeup-flag.patch queue-5.10/parisc-add-support-for-tif_notify_signal.patch queue-5.10/entry-add-support-for-tif_notify_signal.patch queue-5.10/x86-wire-up-tif_notify_signal.patch queue-5.10/task_work-use-tif_notify_signal-if-available.patch queue-5.10/drbd-fix-an-invalid-memory-access-caused-by-incorrec.patch queue-5.10/kernel-don-t-call-do_exit-for-pf_io_worker-threads.patch queue-5.10/kernel-allow-fork-with-tif_notify_signal-pending.patch queue-5.10/pata_ipx4xx_cf-fix-unsigned-comparison-with-less-tha.patch queue-5.10/mips-add-support-for-tif_notify_signal.patch queue-5.10/xtensa-add-support-for-tif_notify_signal.patch queue-5.10/c6x-add-support-for-tif_notify_signal.patch queue-5.10/microblaze-add-support-for-tif_notify_signal.patch queue-5.10/net-add-accept-helper-not-installing-fd.patch queue-5.10/ia64-add-support-for-tif_notify_signal.patch queue-5.10/arm64-add-support-for-tif_notify_signal.patch queue-5.10/arc-add-support-for-tif_notify_signal.patch queue-5.10/revert-proc-don-t-allow-async-path-resolution-of-proc-thread-self-components.patch queue-5.10/fs-make-do_renameat2-take-struct-filename.patch queue-5.10/kernel-remove-checking-for-tif_notify_signal.patch queue-5.10/arch-setup-pf_io_worker-threads-like-pf_kthread.patch queue-5.10/nvme-pci-fix-mempool-alloc-size.patch queue-5.10/fs-add-support-for-lookup_cached.patch