Commit be65f10d authored by Jens Axboe's avatar Jens Axboe Committed by sanglipeng
Browse files

c6x: add support for TIF_NOTIFY_SIGNAL

stable inclusion
from stable-v5.10.162
commit c82617d9decc3c5af2ab2c66055701f7fbd944f6
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7P7OH

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=c82617d9decc3c5af2ab2c66055701f7fbd944f6



--------------------------------

[ Upstream commit 6d665a4d ]

Wire up TIF_NOTIFY_SIGNAL handling for c6x.

Cc: linux-c6x-dev@linux-c6x.org
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarsanglipeng <sanglipeng1@jd.com>
parent 04066360
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 */

+1 −0
Original line number Diff line number Diff line
@@ -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);
+2 −1
Original line number Diff line number Diff line
@@ -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))