diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2018-10-01 12:19:43 +0100 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2018-10-01 16:52:24 +0100 |
commit | c219bc4e920518feb025749bdf9623aa57e94b64 (patch) | |
tree | bf2043211dbd9423e10005d6872d348065fb40cb /arch/arm64/kernel/entry.S | |
parent | ee91176120bd584aa10c564e7e9fdcaf397190a1 (diff) | |
download | linux-rt-c219bc4e920518feb025749bdf9623aa57e94b64.tar.gz |
arm64: Trap WFI executed in userspace
It recently came to light that userspace can execute WFI, and that
the arm64 kernel doesn't trap this event. This sounds rather benign,
but the kernel should decide when it wants to wait for an interrupt,
and not userspace.
Let's trap WFI and immediately return after having skipped the
instruction. This effectively makes WFI a rather expensive NOP.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/kernel/entry.S')
-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 f0a0464d4809..039144ecbcb2 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S @@ -665,6 +665,7 @@ el0_sync: cmp x24, #ESR_ELx_EC_FP_EXC64 // FP/ASIMD exception b.eq el0_fpsimd_exc cmp x24, #ESR_ELx_EC_SYS64 // configurable trap + ccmp x24, #ESR_ELx_EC_WFx, #4, ne b.eq el0_sys cmp x24, #ESR_ELx_EC_SP_ALIGN // stack alignment exception b.eq el0_sp_pc |