diff options
Diffstat (limited to 'arch/powerpc/kvm/e500_emulate.c')
-rw-r--r-- | arch/powerpc/kvm/e500_emulate.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/e500_emulate.c b/arch/powerpc/kvm/e500_emulate.c index 002d51764143..c99c40e9182a 100644 --- a/arch/powerpc/kvm/e500_emulate.c +++ b/arch/powerpc/kvm/e500_emulate.c | |||
@@ -250,6 +250,14 @@ int kvmppc_core_emulate_mtspr_e500(struct kvm_vcpu *vcpu, int sprn, ulong spr_va | |||
250 | spr_val); | 250 | spr_val); |
251 | break; | 251 | break; |
252 | 252 | ||
253 | case SPRN_PWRMGTCR0: | ||
254 | /* | ||
255 | * Guest relies on host power management configurations | ||
256 | * Treat the request as a general store | ||
257 | */ | ||
258 | vcpu->arch.pwrmgtcr0 = spr_val; | ||
259 | break; | ||
260 | |||
253 | /* extra exceptions */ | 261 | /* extra exceptions */ |
254 | case SPRN_IVOR32: | 262 | case SPRN_IVOR32: |
255 | vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_UNAVAIL] = spr_val; | 263 | vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_UNAVAIL] = spr_val; |
@@ -368,6 +376,10 @@ int kvmppc_core_emulate_mfspr_e500(struct kvm_vcpu *vcpu, int sprn, ulong *spr_v | |||
368 | *spr_val = vcpu->arch.eptcfg; | 376 | *spr_val = vcpu->arch.eptcfg; |
369 | break; | 377 | break; |
370 | 378 | ||
379 | case SPRN_PWRMGTCR0: | ||
380 | *spr_val = vcpu->arch.pwrmgtcr0; | ||
381 | break; | ||
382 | |||
371 | /* extra exceptions */ | 383 | /* extra exceptions */ |
372 | case SPRN_IVOR32: | 384 | case SPRN_IVOR32: |
373 | *spr_val = vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_UNAVAIL]; | 385 | *spr_val = vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_UNAVAIL]; |