]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: KVM: Fix AArch64 guest userspace exception injection
authorMarc Zyngier <marc.zyngier@arm.com>
Wed, 6 Jan 2016 18:29:19 +0000 (18:29 +0000)
committerMarc Zyngier <marc.zyngier@arm.com>
Sun, 24 Jan 2016 21:55:57 +0000 (21:55 +0000)
commit62acd320a43c2485bf9e87bf3e6c5ef3dd2f7112
treeeae24b891572c95e695b3cfe397e5df575e0b7bf
parentd7e15052ecc9ac4f938d1d7432c1d120a2711a7e
arm64: KVM: Fix AArch64 guest userspace exception injection

At the moment, our fault injection is pretty limited. We always
generate a SYNC exception into EL1, as if the fault was actually
from EL1h, no matter how it was generated.

This is obviously wrong, as EL0 can generate faults of its own
(not to mention the pretty-much unused EL1t mode).

This patch fixes it by implementing section D1.10.2 of the ARMv8 ARM,
and in particular table D1-7 ("Vector offsets from vector table base
address"), which describes which vector to use depending on the source
exception level and type (synchronous, IRQ, FIQ or SError).

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Tested-by: Shannon Zhao <shannon.zhao@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
arch/arm64/kvm/inject_fault.c