aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm/book3s_emulate.c
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2014-04-29 11:54:40 -0400
committerAlexander Graf <agraf@suse.de>2014-05-30 08:26:23 -0400
commit9916d57e64a49d85bcffe272478f869b8fe1583a (patch)
tree2afe3777d8c4564ed6b99d74845126f4ae5a031c /arch/powerpc/kvm/book3s_emulate.c
parent2e23f544135e7b5fc2f0bcb6fa935c4b4f5058b2 (diff)
KVM: PPC: Book3S PR: Expose TM registers
POWER8 introduces transactional memory which brings along a number of new registers and MSR bits. Implementing all of those is a pretty big headache, so for now let's at least emulate enough to make Linux's context switching code happy. Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/kvm/book3s_emulate.c')
-rw-r--r--arch/powerpc/kvm/book3s_emulate.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s_emulate.c b/arch/powerpc/kvm/book3s_emulate.c
index e1165bae693a..9bdff159ad2a 100644
--- a/arch/powerpc/kvm/book3s_emulate.c
+++ b/arch/powerpc/kvm/book3s_emulate.c
@@ -451,6 +451,17 @@ int kvmppc_core_emulate_mtspr_pr(struct kvm_vcpu *vcpu, int sprn, ulong spr_val)
451 case SPRN_EBBRR: 451 case SPRN_EBBRR:
452 vcpu->arch.ebbrr = spr_val; 452 vcpu->arch.ebbrr = spr_val;
453 break; 453 break;
454#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
455 case SPRN_TFHAR:
456 vcpu->arch.tfhar = spr_val;
457 break;
458 case SPRN_TEXASR:
459 vcpu->arch.texasr = spr_val;
460 break;
461 case SPRN_TFIAR:
462 vcpu->arch.tfiar = spr_val;
463 break;
464#endif
454#endif 465#endif
455 case SPRN_ICTC: 466 case SPRN_ICTC:
456 case SPRN_THRM1: 467 case SPRN_THRM1:
@@ -572,6 +583,17 @@ int kvmppc_core_emulate_mfspr_pr(struct kvm_vcpu *vcpu, int sprn, ulong *spr_val
572 case SPRN_EBBRR: 583 case SPRN_EBBRR:
573 *spr_val = vcpu->arch.ebbrr; 584 *spr_val = vcpu->arch.ebbrr;
574 break; 585 break;
586#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
587 case SPRN_TFHAR:
588 *spr_val = vcpu->arch.tfhar;
589 break;
590 case SPRN_TEXASR:
591 *spr_val = vcpu->arch.texasr;
592 break;
593 case SPRN_TFIAR:
594 *spr_val = vcpu->arch.tfiar;
595 break;
596#endif
575#endif 597#endif
576 case SPRN_THRM1: 598 case SPRN_THRM1:
577 case SPRN_THRM2: 599 case SPRN_THRM2: