On Tue, Oct 12, 2021 at 12:23:12PM +0100, Marc Zyngier wrote: > 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. I wonder if that's something a usermode network driver might want? > > Good luck with that! > > Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> > --- > arch/arm64/include/asm/kvm_emulate.h | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/include/asm/kvm_emulate.h b/arch/arm64/include/asm/kvm_emulate.h > index 1fadb5d98a36..14ee8319b1ce 100644 > --- a/arch/arm64/include/asm/kvm_emulate.h > +++ b/arch/arm64/include/asm/kvm_emulate.h > @@ -396,7 +396,10 @@ static inline bool kvm_vcpu_is_be(struct kvm_vcpu *vcpu) > if (vcpu_mode_is_32bit(vcpu)) > return !!(*vcpu_cpsr(vcpu) & PSR_AA32_E_BIT); > > - return !!(vcpu_read_sys_reg(vcpu, SCTLR_EL1) & (1 << 25)); > + if (vcpu_mode_priv(vcpu)) > + return !!(vcpu_read_sys_reg(vcpu, SCTLR_EL1) & SCTLR_ELx_EE); > + else > + return !!(vcpu_read_sys_reg(vcpu, SCTLR_EL1) & SCTLR_EL1_E0E); > } > > static inline unsigned long vcpu_data_guest_to_host(struct kvm_vcpu *vcpu, > -- > 2.30.2 > Reviewed-by: Andrew Jones <drjones@xxxxxxxxxx> _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm