On Tue, Feb 19, 2019 at 02:54:27PM +0530, Amit Daniel Kachhap wrote: > Save host MDCR_EL2 value during kvm HYP initialisation and restore > after every switch from host to guest. There should not be any > change in functionality due to this. > > The value of mdcr_el2 is now stored in struct kvm_cpu_context as > both host and guest can now use this field in a common way. Is MDCR_EL2 somehow relevant to pointer auth? It's not entirely clear why this patch is here. If this is a cleanup to align the handling of this register with how HCR_EL2 is handled, it would be good to explain that in the commit message. > Signed-off-by: Amit Daniel Kachhap <amit.kachhap at arm.com> > Cc: Marc Zyngier <marc.zyngier at arm.com> > Cc: Mark Rutland <mark.rutland at arm.com> > Cc: Christoffer Dall <christoffer.dall at arm.com> > Cc: kvmarm at lists.cs.columbia.edu > --- > arch/arm/include/asm/kvm_host.h | 1 - > arch/arm64/include/asm/kvm_host.h | 6 ++---- > arch/arm64/kvm/debug.c | 28 ++++++---------------------- > arch/arm64/kvm/hyp/switch.c | 17 ++++------------- > arch/arm64/kvm/hyp/sysreg-sr.c | 6 ++++++ > virt/kvm/arm/arm.c | 1 - > 6 files changed, 18 insertions(+), 41 deletions(-) > > diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h > index 05706b4..704667e 100644 > --- a/arch/arm/include/asm/kvm_host.h > +++ b/arch/arm/include/asm/kvm_host.h > @@ -294,7 +294,6 @@ static inline void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu) {} > static inline void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu) {} > static inline void kvm_arch_vcpu_block_finish(struct kvm_vcpu *vcpu) {} > > -static inline void kvm_arm_init_debug(void) {} > static inline void kvm_arm_setup_debug(struct kvm_vcpu *vcpu) {} > static inline void kvm_arm_clear_debug(struct kvm_vcpu *vcpu) {} > static inline void kvm_arm_reset_debug_ptr(struct kvm_vcpu *vcpu) {} > diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h > index 1b2e05b..2f1bb86 100644 > --- a/arch/arm64/include/asm/kvm_host.h > +++ b/arch/arm64/include/asm/kvm_host.h > @@ -205,6 +205,8 @@ struct kvm_cpu_context { > > /* HYP host/guest configuration */ > u64 hcr_el2; > + u32 mdcr_el2; > + ARMv8-A says MDCR_EL2 is a 64-bit register. Bits [63:20] are currently RES0, so this is probably not a big deal. But it would be better to make this 64-bit to prevent future accidents. It may be better to make that change in a separate patch. This is probably non-urgent, since this is clearly not causing problems for anyone today. [...] Cheers ---Dave