mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 10:29:37 +00:00
KVM: PPC: Book3S PR: Add kvmppc_save/restore_tm_sprs() APIs
This patch adds 2 new APIs, kvmppc_save_tm_sprs() and kvmppc_restore_tm_sprs(), for the purpose of TEXASR/TFIAR/TFHAR save/restore. Signed-off-by: Simon Guo <wei.guo.simon@gmail.com> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This commit is contained in:
parent
de7ad93219
commit
66c33e796c
1 changed files with 22 additions and 0 deletions
|
@ -42,6 +42,7 @@
|
|||
#include <linux/highmem.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/miscdevice.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
|
||||
#include "book3s.h"
|
||||
|
||||
|
@ -284,6 +285,27 @@ void kvmppc_copy_from_svcpu(struct kvm_vcpu *vcpu)
|
|||
svcpu_put(svcpu);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
|
||||
static inline void kvmppc_save_tm_sprs(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
tm_enable();
|
||||
vcpu->arch.tfhar = mfspr(SPRN_TFHAR);
|
||||
vcpu->arch.texasr = mfspr(SPRN_TEXASR);
|
||||
vcpu->arch.tfiar = mfspr(SPRN_TFIAR);
|
||||
tm_disable();
|
||||
}
|
||||
|
||||
static inline void kvmppc_restore_tm_sprs(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
tm_enable();
|
||||
mtspr(SPRN_TFHAR, vcpu->arch.tfhar);
|
||||
mtspr(SPRN_TEXASR, vcpu->arch.texasr);
|
||||
mtspr(SPRN_TFIAR, vcpu->arch.tfiar);
|
||||
tm_disable();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static int kvmppc_core_check_requests_pr(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
int r = 1; /* Indicate we want to get back into the guest */
|
||||
|
|
Loading…
Reference in a new issue