diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2012-10-08 18:04:21 +0100 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2012-10-08 18:04:21 +0100 |
commit | 6916fd086f0c5d7871ad3986300ba30d63616925 (patch) | |
tree | b0a4be0ca36e36e65ff7ebd63c8405769c957130 /arch/arm64 | |
parent | e048d004a5392e3d6d78b0a53335391f87d724ec (diff) | |
download | linux-6916fd086f0c5d7871ad3986300ba30d63616925.tar.gz linux-6916fd086f0c5d7871ad3986300ba30d63616925.tar.bz2 linux-6916fd086f0c5d7871ad3986300ba30d63616925.zip |
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.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: mov x0, sp // 'regs' tst x2, #PSR_MODE_MASK // user mode regs? b.ne no_work_pending // returning to kernel + enable_irq // enable interrupts for do_notify_resume() bl do_notify_resume b ret_to_user work_resched: |