Message ID | 20200724143506.17772-3-will@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: arm64: Fixes to early stage-2 fault handling | expand |
On Fri, 24 Jul 2020 15:35:01 +0100, Will Deacon <will@kernel.org> wrote: > > kvm_vcpu_dabt_isextabt() is not specific to data aborts and has nothing > to do with sign extension. Not sign extension, but external abort (it reads as "is external abort?"). This is in keeping with all the other helpers (kvm_vcpu_foo_isbar). If you want to drop the "data" part (which is indeed not correct), how about kvm_vcpu_abt_isexternal? or kvm_vcpu_abt_issea? Thanks, M. > > Rename it. > > Cc: Marc Zyngier <maz@kernel.org> > Cc: Quentin Perret <qperret@google.com> > Signed-off-by: Will Deacon <will@kernel.org> > --- > arch/arm64/include/asm/kvm_emulate.h | 2 +- > arch/arm64/kvm/hyp/switch.c | 2 +- > arch/arm64/kvm/mmu.c | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/arm64/include/asm/kvm_emulate.h b/arch/arm64/include/asm/kvm_emulate.h > index 4d0f8ea600ba..9d6beb532536 100644 > --- a/arch/arm64/include/asm/kvm_emulate.h > +++ b/arch/arm64/include/asm/kvm_emulate.h > @@ -366,7 +366,7 @@ static __always_inline u8 kvm_vcpu_trap_get_fault_type(const struct kvm_vcpu *vc > return kvm_vcpu_get_hsr(vcpu) & ESR_ELx_FSC_TYPE; > } > > -static __always_inline bool kvm_vcpu_dabt_isextabt(const struct kvm_vcpu *vcpu) > +static __always_inline bool kvm_vcpu_abt_is_extabt(const struct kvm_vcpu *vcpu) > { > switch (kvm_vcpu_trap_get_fault(vcpu)) { > case FSC_SEA: > diff --git a/arch/arm64/kvm/hyp/switch.c b/arch/arm64/kvm/hyp/switch.c > index db1c4487d95d..9aa1092bbafd 100644 > --- a/arch/arm64/kvm/hyp/switch.c > +++ b/arch/arm64/kvm/hyp/switch.c > @@ -594,7 +594,7 @@ static bool __hyp_text fixup_guest_exit(struct kvm_vcpu *vcpu, u64 *exit_code) > valid = kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_DABT_LOW && > kvm_vcpu_trap_get_fault_type(vcpu) == FSC_FAULT && > kvm_vcpu_dabt_isvalid(vcpu) && > - !kvm_vcpu_dabt_isextabt(vcpu) && > + !kvm_vcpu_abt_is_extabt(vcpu) && > !kvm_vcpu_dabt_iss1tw(vcpu); > > if (valid) { > diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c > index df2a8025ec8a..660a83a172e4 100644 > --- a/arch/arm64/kvm/mmu.c > +++ b/arch/arm64/kvm/mmu.c > @@ -2074,7 +2074,7 @@ int kvm_handle_guest_abort(struct kvm_vcpu *vcpu, struct kvm_run *run) > is_iabt = kvm_vcpu_trap_is_iabt(vcpu); > > /* Synchronous External Abort? */ > - if (kvm_vcpu_dabt_isextabt(vcpu)) { > + if (kvm_vcpu_abt_is_extabt(vcpu)) { > /* > * For RAS the host kernel may handle this abort. > * There is no need to pass the error into the guest. > -- > 2.28.0.rc0.142.g3c755180ce-goog > >
On Sun, Jul 26, 2020 at 12:15:44PM +0100, Marc Zyngier wrote: > On Fri, 24 Jul 2020 15:35:01 +0100, > Will Deacon <will@kernel.org> wrote: > > > > kvm_vcpu_dabt_isextabt() is not specific to data aborts and has nothing > > to do with sign extension. > > Not sign extension, but external abort (it reads as "is external > abort?"). > > This is in keeping with all the other helpers (kvm_vcpu_foo_isbar). If > you want to drop the "data" part (which is indeed not correct), how > about kvm_vcpu_abt_isexternal? or kvm_vcpu_abt_issea? kvm_vcpu_abt_issea() would be great -- the problem is that I confused kvm_vcpu_dabt_issext() and kvm_vcpu_dabt_isextabt() when I was hacking and if you get the wrong one then you're really hosed! I'll update for v2. Cheers, Will
diff --git a/arch/arm64/include/asm/kvm_emulate.h b/arch/arm64/include/asm/kvm_emulate.h index 4d0f8ea600ba..9d6beb532536 100644 --- a/arch/arm64/include/asm/kvm_emulate.h +++ b/arch/arm64/include/asm/kvm_emulate.h @@ -366,7 +366,7 @@ static __always_inline u8 kvm_vcpu_trap_get_fault_type(const struct kvm_vcpu *vc return kvm_vcpu_get_hsr(vcpu) & ESR_ELx_FSC_TYPE; } -static __always_inline bool kvm_vcpu_dabt_isextabt(const struct kvm_vcpu *vcpu) +static __always_inline bool kvm_vcpu_abt_is_extabt(const struct kvm_vcpu *vcpu) { switch (kvm_vcpu_trap_get_fault(vcpu)) { case FSC_SEA: diff --git a/arch/arm64/kvm/hyp/switch.c b/arch/arm64/kvm/hyp/switch.c index db1c4487d95d..9aa1092bbafd 100644 --- a/arch/arm64/kvm/hyp/switch.c +++ b/arch/arm64/kvm/hyp/switch.c @@ -594,7 +594,7 @@ static bool __hyp_text fixup_guest_exit(struct kvm_vcpu *vcpu, u64 *exit_code) valid = kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_DABT_LOW && kvm_vcpu_trap_get_fault_type(vcpu) == FSC_FAULT && kvm_vcpu_dabt_isvalid(vcpu) && - !kvm_vcpu_dabt_isextabt(vcpu) && + !kvm_vcpu_abt_is_extabt(vcpu) && !kvm_vcpu_dabt_iss1tw(vcpu); if (valid) { diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index df2a8025ec8a..660a83a172e4 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -2074,7 +2074,7 @@ int kvm_handle_guest_abort(struct kvm_vcpu *vcpu, struct kvm_run *run) is_iabt = kvm_vcpu_trap_is_iabt(vcpu); /* Synchronous External Abort? */ - if (kvm_vcpu_dabt_isextabt(vcpu)) { + if (kvm_vcpu_abt_is_extabt(vcpu)) { /* * For RAS the host kernel may handle this abort. * There is no need to pass the error into the guest.
kvm_vcpu_dabt_isextabt() is not specific to data aborts and has nothing to do with sign extension. Rename it. Cc: Marc Zyngier <maz@kernel.org> Cc: Quentin Perret <qperret@google.com> Signed-off-by: Will Deacon <will@kernel.org> --- arch/arm64/include/asm/kvm_emulate.h | 2 +- arch/arm64/kvm/hyp/switch.c | 2 +- arch/arm64/kvm/mmu.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)