aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kvm/book3s_hv.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 461f55566167..7e1813ceabc1 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -86,10 +86,13 @@ static void kvmppc_fast_vcpu_kick_hv(struct kvm_vcpu *vcpu)
86 86
87 /* CPU points to the first thread of the core */ 87 /* CPU points to the first thread of the core */
88 if (cpu != me && cpu >= 0 && cpu < nr_cpu_ids) { 88 if (cpu != me && cpu >= 0 && cpu < nr_cpu_ids) {
89#ifdef CONFIG_KVM_XICS
89 int real_cpu = cpu + vcpu->arch.ptid; 90 int real_cpu = cpu + vcpu->arch.ptid;
90 if (paca[real_cpu].kvm_hstate.xics_phys) 91 if (paca[real_cpu].kvm_hstate.xics_phys)
91 xics_wake_cpu(real_cpu); 92 xics_wake_cpu(real_cpu);
92 else if (cpu_online(cpu)) 93 else
94#endif
95 if (cpu_online(cpu))
93 smp_send_reschedule(cpu); 96 smp_send_reschedule(cpu);
94 } 97 }
95 put_cpu(); 98 put_cpu();
@@ -1142,7 +1145,9 @@ static void kvmppc_start_thread(struct kvm_vcpu *vcpu)
1142 smp_wmb(); 1145 smp_wmb();
1143#if defined(CONFIG_PPC_ICP_NATIVE) && defined(CONFIG_SMP) 1146#if defined(CONFIG_PPC_ICP_NATIVE) && defined(CONFIG_SMP)
1144 if (vcpu->arch.ptid) { 1147 if (vcpu->arch.ptid) {
1148#ifdef CONFIG_KVM_XICS
1145 xics_wake_cpu(cpu); 1149 xics_wake_cpu(cpu);
1150#endif
1146 ++vc->n_woken; 1151 ++vc->n_woken;
1147 } 1152 }
1148#endif 1153#endif