diff options
author | Alexander Graf <agraf@suse.de> | 2012-02-15 14:12:29 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-04-08 05:54:52 -0400 |
commit | 79300f8cb9be201f916d075b3ef2e032d83a0d75 (patch) | |
tree | 5d4a1cefc342b3232ae0f081c884775a70e1edd0 /arch/powerpc/kvm/booke.c | |
parent | 4ab969199ec6a14604ceaffb21fe78cc4881d3b8 (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.c | 11 |
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 | } |