signal: kill JOBCTL_TASK_WORK
authorJens Axboe <axboe@kernel.dk>
Fri, 9 Oct 2020 22:03:01 +0000 (16:03 -0600)
committerJens Axboe <axboe@kernel.dk>
Sat, 12 Dec 2020 16:17:38 +0000 (09:17 -0700)
It's no longer used, get rid of it.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/sched/jobctl.h
kernel/signal.c

index d2b4204..fa067de 100644 (file)
@@ -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);
index 923230f..cf8b057 100644 (file)
@@ -2556,26 +2556,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