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

signal: kill JOBCTL_TASK_WORK

stable inclusion
from stable-v5.10.162
commit c91ab04781f9e46c1a2143bd1ba8fc1f1aff6ebc
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=c91ab04781f9e46c1a2143bd1ba8fc1f1aff6ebc



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

[ Upstream commit 98b89b64 ]

It's no longer used, get rid of it.

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 0b5b6b26
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ struct task_struct;
#define JOBCTL_TRAPPING_BIT	21	/* switching to TRACED */
#define JOBCTL_LISTENING_BIT	22	/* ptracer is listening for events */
#define JOBCTL_TRAP_FREEZE_BIT	23	/* trap for cgroup freezer */
#define JOBCTL_TASK_WORK_BIT	24	/* set by TWA_SIGNAL */

#define JOBCTL_STOP_DEQUEUED	(1UL << JOBCTL_STOP_DEQUEUED_BIT)
#define JOBCTL_STOP_PENDING	(1UL << JOBCTL_STOP_PENDING_BIT)
@@ -29,10 +28,9 @@ struct task_struct;
#define JOBCTL_TRAPPING		(1UL << JOBCTL_TRAPPING_BIT)
#define JOBCTL_LISTENING	(1UL << JOBCTL_LISTENING_BIT)
#define JOBCTL_TRAP_FREEZE	(1UL << JOBCTL_TRAP_FREEZE_BIT)
#define JOBCTL_TASK_WORK	(1UL << JOBCTL_TASK_WORK_BIT)

#define JOBCTL_TRAP_MASK	(JOBCTL_TRAP_STOP | JOBCTL_TRAP_NOTIFY)
#define JOBCTL_PENDING_MASK	(JOBCTL_STOP_PENDING | JOBCTL_TRAP_MASK | JOBCTL_TASK_WORK)
#define JOBCTL_PENDING_MASK	(JOBCTL_STOP_PENDING | JOBCTL_TRAP_MASK)

extern bool task_set_jobctl_pending(struct task_struct *task, unsigned long mask);
extern void task_clear_jobctl_trapping(struct task_struct *task);
+0 −20
Original line number Diff line number Diff line
@@ -2551,26 +2551,6 @@ bool get_signal(struct ksignal *ksig)

relock:
	spin_lock_irq(&sighand->siglock);
	/*
	 * Make sure we can safely read ->jobctl() in task_work add. As Oleg
	 * states:
	 *
	 * It pairs with mb (implied by cmpxchg) before READ_ONCE. So we
	 * roughly have
	 *
	 *	task_work_add:				get_signal:
	 *	STORE(task->task_works, new_work);	STORE(task->jobctl);
	 *	mb();					mb();
	 *	LOAD(task->jobctl);			LOAD(task->task_works);
	 *
	 * and we can rely on STORE-MB-LOAD [ in task_work_add].
	 */
	smp_store_mb(current->jobctl, current->jobctl & ~JOBCTL_TASK_WORK);
	if (unlikely(current->task_works)) {
		spin_unlock_irq(&sighand->siglock);
		task_work_run();
		goto relock;
	}

	/*
	 * Every stopped thread goes here after wakeup. Check to see if