aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2012-10-08 13:04:21 -0400
committerCatalin Marinas <catalin.marinas@arm.com>2012-10-08 13:04:21 -0400
commit6916fd086f0c5d7871ad3986300ba30d63616925 (patch)
treeb0a4be0ca36e36e65ff7ebd63c8405769c957130 /arch/arm64
parente048d004a5392e3d6d78b0a53335391f87d724ec (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')
-rw-r--r--arch/arm64/kernel/entry.S1
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
588work_resched: 589work_resched: