KVM: arm64: Fix reporting of endianess when the access originates at EL0
authorMarc Zyngier <maz@kernel.org>
Tue, 12 Oct 2021 11:23:12 +0000 (12:23 +0100)
committerMarc Zyngier <maz@kernel.org>
Tue, 12 Oct 2021 14:47:25 +0000 (15:47 +0100)
commit69adec18e94ff3ca20447916a3bd23ab1d06b878
tree0351cc2d2dd99ff1ff5e2b294a9369c0be62de5e
parente26bb75aa2f17fc079e6a24dff653b098e1f5d37
KVM: arm64: Fix reporting of endianess when the access originates at EL0

We currently check SCTLR_EL1.EE when computing the address of
a faulting guest access. However, the fault could have occured at
EL0, in which case the right bit to check would be SCTLR_EL1.E0E.

This is pretty unlikely to cause any issue in practice: You'd have
to have a guest with a LE EL1 and a BE EL0 (or the other way around),
and have mapped a device into the EL0 page tables.

Good luck with that!

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Link: https://lore.kernel.org/r/20211012112312.1247467-1-maz@kernel.org
arch/arm64/include/asm/kvm_emulate.h