diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2012-10-08 13:04:21 -0400 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2012-10-08 13:04:21 -0400 |
commit | 6916fd086f0c5d7871ad3986300ba30d63616925 (patch) | |
tree | b0a4be0ca36e36e65ff7ebd63c8405769c957130 /arch/arm64/kernel | |
parent | e048d004a5392e3d6d78b0a53335391f87d724ec (diff) |
arm64: Enable interrupts before calling do_notify_resume()
task_work_run() implementation had the side effect of enabling
interrupts. With commit ac3d0da8 (task_work: Make task_work_add()
lockless), interrupts are no longer enabled revealing the bug in the
arch code. This patch enables the interrupt explicitly before calling
do_notify_resume().
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/kernel')
-rw-r--r-- | arch/arm64/kernel/entry.S | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index 38cf853a3667..6538928ff1ab 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S | |||
@@ -583,6 +583,7 @@ work_pending: | |||
583 | mov x0, sp // 'regs' | 583 | mov x0, sp // 'regs' |
584 | tst x2, #PSR_MODE_MASK // user mode regs? | 584 | tst x2, #PSR_MODE_MASK // user mode regs? |
585 | b.ne no_work_pending // returning to kernel | 585 | b.ne no_work_pending // returning to kernel |
586 | enable_irq // enable interrupts for do_notify_resume() | ||
586 | bl do_notify_resume | 587 | bl do_notify_resume |
587 | b ret_to_user | 588 | b ret_to_user |
588 | work_resched: | 589 | work_resched: |