FAILED: patch "[PATCH] KVM: PPC: Book3S HV: Remove virt mode checks from real mode" failed to apply to 5.10-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From dcbac73a5b374873bd6dfd8a0ee5d0b7fc844420 Mon Sep 17 00:00:00 2001
From: Nicholas Piggin <[email protected]>
Date: Fri, 28 May 2021 19:07:44 +1000
Subject: [PATCH] KVM: PPC: Book3S HV: Remove virt mode checks from real mode
handlers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Now that the P7/8 path no longer supports radix, real-mode handlers do not need to deal with being called in virt mode.
This change effectively reverts commit acde25726bc6 ("KVM: PPC: Book3S
HV: Add radix checks in real-mode hypercall handlers").
It removes a few more real-mode tests in rm hcall handlers, which allows the indirect ops for the xive module to be removed from the built-in xics rm handlers.
kvmppc_h_random is renamed to kvmppc_rm_h_random to be a bit more descriptive and consistent with other rm handlers.
arch/powerpc/include/asm/kvm_ppc.h +1 -9
@@ -659,8 +659,6 @@ extern int kvmppc_xive_get_xive(struct kvm *kvm, u32 irq, u32 *server, u32 *priority);extern int kvmppc_xive_int_on (struct kvm *kvm,u32 irq);extern int kvmppc_xive_int_off (struct kvm *kvm,u32 irq); -extern void kvmppc_xive_init_module (void ); -extern void kvmppc_xive_exit_module (void );extern int kvmppc_xive_connect_vcpu (struct kvm_device *dev,struct kvm_vcpu *vcpu,u32 cpu);
@@ -686,8 +684,6 @@ static inline int kvmppc_xive_enabled(struct kvm_vcpu *vcpu)extern int kvmppc_xive_native_connect_vcpu (struct kvm_device *dev,struct kvm_vcpu *vcpu,u32 cpu);extern void kvmppc_xive_native_cleanup_vcpu (struct kvm_vcpu *vcpu); -extern void kvmppc_xive_native_init_module (void ); -extern void kvmppc_xive_native_exit_module (void );extern int kvmppc_xive_native_get_vp (struct kvm_vcpu *vcpu,union kvmppc_one_reg *val); extern int kvmppc_xive_native_set_vp(struct kvm_vcpu *vcpu,
@@ -701,8 +697,6 @@ static inline int kvmppc_xive_get_xive(struct kvm *kvm, u32 irq, u32 *server, u32 *priority) { return -1; }static inline int kvmppc_xive_int_on (struct kvm *kvm,u32 irq) {return -1 ; }static inline int kvmppc_xive_int_off (struct kvm *kvm,u32 irq) {return -1 ; } -static inline void kvmppc_xive_init_module (void ) { } -static inline void kvmppc_xive_exit_module (void ) { }static inline int kvmppc_xive_connect_vcpu (struct kvm_device *dev,struct kvm_vcpu *vcpu,u32 cpu) {return -EBUSY ; }
@@ -725,8 +719,6 @@ static inline int kvmppc_xive_enabled(struct kvm_vcpu *vcpu)static inline int kvmppc_xive_native_connect_vcpu (struct kvm_device *dev,struct kvm_vcpu *vcpu,u32 cpu) {return -EBUSY ; }static inline void kvmppc_xive_native_cleanup_vcpu (struct kvm_vcpu *vcpu) { } -static inline void kvmppc_xive_native_init_module (void ) { } -static inline void kvmppc_xive_native_exit_module (void ) { }static inline int kvmppc_xive_native_get_vp (struct kvm_vcpu *vcpu,union kvmppc_one_reg *val) {return 0 ; }
@@ -762,7 +754,7 @@ long kvmppc_rm_h_stuff_tce(struct kvm_vcpu *vcpu, unsigned long tce_value, unsigned long npages);long int kvmppc_rm_h_confer (struct kvm_vcpu *vcpu,int target,unsigned int yield_count); -long kvmppc_h_random (struct kvm_vcpu *vcpu); +long kvmppc_rm_h_random (struct kvm_vcpu *vcpu);void kvmhv_commence_exit (int trap);void kvmppc_realmode_machine_check (struct kvm_vcpu *vcpu);void kvmppc_subcore_enter_guest (void );
arch/powerpc/kvm/book3s.c +1 -10
@@ -1050,13 +1050,10 @@ static int kvmppc_book3s_init(void)#ifdef CONFIG_KVM_XICS #ifdef CONFIG_KVM_XIVE if (xics_on_xive ()) { -kvmppc_xive_init_module ();kvm_register_device_ops (&kvm_xive_ops,KVM_DEV_TYPE_XICS ); -if (kvmppc_xive_native_supported ()) { -kvmppc_xive_native_init_module (); +if (kvmppc_xive_native_supported ())kvm_register_device_ops (&kvm_xive_native_ops,KVM_DEV_TYPE_XIVE ); - } } else#endif kvm_register_device_ops (&kvm_xics_ops,KVM_DEV_TYPE_XICS );
@@ -1066,12 +1063,6 @@ static int kvmppc_book3s_init(void)static void kvmppc_book3s_exit (void ) { -#ifdef CONFIG_KVM_XICS -if (xics_on_xive ()) { -kvmppc_xive_exit_module (); -kvmppc_xive_native_exit_module (); - } -#endif #ifdef CONFIG_KVM_BOOK3S_32_HANDLER kvmppc_book3s_exit_pr ();#endif
arch/powerpc/kvm/book3s_64_vio_hv.c +0 -12
@@ -391,10 +391,6 @@ long kvmppc_rm_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn,/* udbg_printf("H_PUT_TCE(): liobn=0x%lx ioba=0x%lx, tce=0x%lx\n", */ /* liobn, ioba, tce); */ -/* For radix, we might be in virtual mode, so punt */ -if (kvm_is_radix (vcpu->kvm)) -return H_TOO_HARD ; - stt =kvmppc_find_table (vcpu->kvm, liobn);if (!stt)return H_TOO_HARD ;
@@ -489,10 +485,6 @@ long kvmppc_rm_h_put_tce_indirect(struct kvm_vcpu *vcpu,bool prereg = false;struct kvmppc_spapr_tce_iommu_table *stit; -/* For radix, we might be in virtual mode, so punt */ -if (kvm_is_radix (vcpu->kvm)) -return H_TOO_HARD ; -/* * used to check for invalidations in progress */
@@ -602,10 +594,6 @@ long kvmppc_rm_h_stuff_tce(struct kvm_vcpu *vcpu,long i, ret;struct kvmppc_spapr_tce_iommu_table *stit; -/* For radix, we might be in virtual mode, so punt */ -if (kvm_is_radix (vcpu->kvm)) -return H_TOO_HARD ; - stt =kvmppc_find_table (vcpu->kvm, liobn);if (!stt)return H_TOO_HARD ;
arch/powerpc/kvm/book3s_hv_builtin.c +20 -71
144 lines not on this page · raw message
arch/powerpc/kvm/book3s_hv_rmhandlers.S +1 -1
@@ -2306,7 +2306,7 @@ hcall_real_table: #else .long 0 /* 0x2fc - H_XIRR_X*/ #endif - .long DOTSYM(kvmppc_h_random) - hcall_real_table + .long DOTSYM(kvmppc_rm_h_random) - hcall_real_table .globl hcall_real_table_end hcall_real_table_end:
arch/powerpc/kvm/book3s_xive.c +0 -18
@@ -2352,21 +2352,3 @@ struct kvm_device_ops kvm_xive_ops = { .get_attr = xive_get_attr, .has_attr = xive_has_attr, }; - -void kvmppc_xive_init_module (void ) -{ - __xive_vm_h_xirr = xive_vm_h_xirr; - __xive_vm_h_ipoll = xive_vm_h_ipoll; - __xive_vm_h_ipi = xive_vm_h_ipi; - __xive_vm_h_cppr = xive_vm_h_cppr; - __xive_vm_h_eoi = xive_vm_h_eoi; -} - -void kvmppc_xive_exit_module (void ) -{ - __xive_vm_h_xirr =NULL ; - __xive_vm_h_ipoll =NULL ; - __xive_vm_h_ipi =NULL ; - __xive_vm_h_cppr =NULL ; - __xive_vm_h_eoi =NULL ; -}
arch/powerpc/kvm/book3s_xive.h +0 -7
@@ -289,13 +289,6 @@ extern int xive_rm_h_ipi(struct kvm_vcpu *vcpu, unsigned long server,extern int xive_rm_h_cppr (struct kvm_vcpu *vcpu,unsigned long cppr);extern int xive_rm_h_eoi (struct kvm_vcpu *vcpu,unsigned long xirr); -extern unsigned long (*__xive_vm_h_xirr)(struct kvm_vcpu *vcpu); -extern unsigned long (*__xive_vm_h_ipoll)(struct kvm_vcpu *vcpu,unsigned long server); -extern int (*__xive_vm_h_ipi)(struct kvm_vcpu *vcpu,unsigned long server, -unsigned long mfrr); -extern int (*__xive_vm_h_cppr)(struct kvm_vcpu *vcpu,unsigned long cppr); -extern int (*__xive_vm_h_eoi)(struct kvm_vcpu *vcpu,unsigned long xirr); -/* * Common Xive routines for XICS-over-XIVE and XIVE native */
arch/powerpc/kvm/book3s_xive_native.c +0 -10
@@ -1281,13 +1281,3 @@ struct kvm_device_ops kvm_xive_native_ops = { .has_attr = kvmppc_xive_native_has_attr, .mmap = kvmppc_xive_native_mmap, }; - -void kvmppc_xive_native_init_module (void ) -{ - ; -} - -void kvmppc_xive_native_exit_module (void ) -{ - ; -}