aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm/booke.c
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2012-02-15 14:12:29 -0500
committerAvi Kivity <avi@redhat.com>2012-04-08 05:54:52 -0400
commit79300f8cb9be201f916d075b3ef2e032d83a0d75 (patch)
tree5d4a1cefc342b3232ae0f081c884775a70e1edd0 /arch/powerpc/kvm/booke.c
parent4ab969199ec6a14604ceaffb21fe78cc4881d3b8 (diff)
KVM: PPC: e500mc: implicitly set MSR_GS
When setting MSR for an e500mc guest, we implicitly always set MSR_GS to make sure the guest is in guest state. Since we have this implicit rule there, we don't need to explicitly pass MSR_GS to set_msr(). Remove all explicit setters of MSR_GS. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/kvm/booke.c')
-rw-r--r--arch/powerpc/kvm/booke.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 85bd5b8f3fd5..fcbe9281543f 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -280,7 +280,7 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu,
280 unsigned int priority) 280 unsigned int priority)
281{ 281{
282 int allowed = 0; 282 int allowed = 0;
283 ulong uninitialized_var(msr_mask); 283 ulong msr_mask = 0;
284 bool update_esr = false, update_dear = false; 284 bool update_esr = false, update_dear = false;
285 ulong crit_raw = vcpu->arch.shared->critical; 285 ulong crit_raw = vcpu->arch.shared->critical;
286 ulong crit_r1 = kvmppc_get_gpr(vcpu, 1); 286 ulong crit_r1 = kvmppc_get_gpr(vcpu, 1);
@@ -322,20 +322,19 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu,
322 case BOOKE_IRQPRIO_AP_UNAVAIL: 322 case BOOKE_IRQPRIO_AP_UNAVAIL:
323 case BOOKE_IRQPRIO_ALIGNMENT: 323 case BOOKE_IRQPRIO_ALIGNMENT:
324 allowed = 1; 324 allowed = 1;
325 msr_mask = MSR_GS | MSR_CE | MSR_ME | MSR_DE; 325 msr_mask = MSR_CE | MSR_ME | MSR_DE;
326 int_class = INT_CLASS_NONCRIT; 326 int_class = INT_CLASS_NONCRIT;
327 break; 327 break;
328 case BOOKE_IRQPRIO_CRITICAL: 328 case BOOKE_IRQPRIO_CRITICAL:
329 case BOOKE_IRQPRIO_DBELL_CRIT: 329 case BOOKE_IRQPRIO_DBELL_CRIT:
330 allowed = vcpu->arch.shared->msr & MSR_CE; 330 allowed = vcpu->arch.shared->msr & MSR_CE;
331 allowed = allowed && !crit; 331 allowed = allowed && !crit;
332 msr_mask = MSR_GS | MSR_ME; 332 msr_mask = MSR_ME;
333 int_class = INT_CLASS_CRIT; 333 int_class = INT_CLASS_CRIT;
334 break; 334 break;
335 case BOOKE_IRQPRIO_MACHINE_CHECK: 335 case BOOKE_IRQPRIO_MACHINE_CHECK:
336 allowed = vcpu->arch.shared->msr & MSR_ME; 336 allowed = vcpu->arch.shared->msr & MSR_ME;
337 allowed = allowed && !crit; 337 allowed = allowed && !crit;
338 msr_mask = MSR_GS;
339 int_class = INT_CLASS_MC; 338 int_class = INT_CLASS_MC;
340 break; 339 break;
341 case BOOKE_IRQPRIO_DECREMENTER: 340 case BOOKE_IRQPRIO_DECREMENTER:
@@ -346,13 +345,13 @@ static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu,
346 case BOOKE_IRQPRIO_DBELL: 345 case BOOKE_IRQPRIO_DBELL:
347 allowed = vcpu->arch.shared->msr & MSR_EE; 346 allowed = vcpu->arch.shared->msr & MSR_EE;
348 allowed = allowed && !crit; 347 allowed = allowed && !crit;
349 msr_mask = MSR_GS | MSR_CE | MSR_ME | MSR_DE; 348 msr_mask = MSR_CE | MSR_ME | MSR_DE;
350 int_class = INT_CLASS_NONCRIT; 349 int_class = INT_CLASS_NONCRIT;
351 break; 350 break;
352 case BOOKE_IRQPRIO_DEBUG: 351 case BOOKE_IRQPRIO_DEBUG:
353 allowed = vcpu->arch.shared->msr & MSR_DE; 352 allowed = vcpu->arch.shared->msr & MSR_DE;
354 allowed = allowed && !crit; 353 allowed = allowed && !crit;
355 msr_mask = MSR_GS | MSR_ME; 354 msr_mask = MSR_ME;
356 int_class = INT_CLASS_CRIT; 355 int_class = INT_CLASS_CRIT;
357 break; 356 break;
358 } 357 }