arm64: Unmask PMR before going idle
authorJulien Thierry <julien.thierry@arm.com>
Thu, 31 Jan 2019 14:58:47 +0000 (14:58 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 6 Feb 2019 10:05:18 +0000 (10:05 +0000)
commita9806aa259feb2f6fd582b6342c835a3482fccc6
tree432ea57e608d7d2f0ecd0a477813f471c4f6a3eb
parent133d05186325ce04494ea6488a6b86e50a446c12
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>
arch/arm64/kernel/process.c
arch/arm64/mm/proc.S