Merge 5.9-rc1 into android-mainline
Linux 5.9-rc1 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I1cfd3565631a1fa0d0411d93d4131ed92ec4ff23
This commit is contained in:
@@ -2542,7 +2542,21 @@ bool get_signal(struct ksignal *ksig)
|
||||
|
||||
relock:
|
||||
spin_lock_irq(&sighand->siglock);
|
||||
current->jobctl &= ~JOBCTL_TASK_WORK;
|
||||
/*
|
||||
* 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();
|
||||
|
Reference in New Issue
Block a user