diff options
author | Julien Thierry <julien.thierry@arm.com> | 2019-01-31 14:58:47 +0000 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2019-02-06 10:05:18 +0000 |
commit | a9806aa259feb2f6fd582b6342c835a3482fccc6 (patch) | |
tree | 432ea57e608d7d2f0ecd0a477813f471c4f6a3eb /arch/arm64/mm | |
parent | 133d05186325ce04494ea6488a6b86e50a446c12 (diff) | |
download | linux-a9806aa259feb2f6fd582b6342c835a3482fccc6.tar.bz2 |
arm64: Unmask PMR before going idle
CPU does not received signals for interrupts with a priority masked by
ICC_PMR_EL1. This means the CPU might not come back from a WFI
instruction.
Make sure ICC_PMR_EL1 does not mask interrupts when doing a WFI.
Since the logic of cpu_do_idle is becoming a bit more complex than just
two instructions, lets turn it from ASM to C.
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Suggested-by: Daniel Thompson <daniel.thompson@linaro.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/mm')
-rw-r--r-- | arch/arm64/mm/proc.S | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S index 73886a5f1f30..3ea4f3b84a8b 100644 --- a/arch/arm64/mm/proc.S +++ b/arch/arm64/mm/proc.S @@ -55,17 +55,6 @@ #define MAIR(attr, mt) ((attr) << ((mt) * 8)) -/* - * cpu_do_idle() - * - * Idle the processor (wait for interrupt). - */ -ENTRY(cpu_do_idle) - dsb sy // WFI may enter a low-power mode - wfi - ret -ENDPROC(cpu_do_idle) - #ifdef CONFIG_CPU_PM /** * cpu_do_suspend - save CPU registers context |