diff options
author | Scott Wood <scottwood@freescale.com> | 2011-12-20 10:34:22 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-04-08 05:51:04 -0400 |
commit | 94fa9d9927627a948cef3eff7ebd228dcab5a316 (patch) | |
tree | dc0ec378616a6250bca86caf3b7881eba10b24cc | |
parent | 043cc4d724da6bb9e4f417c735accec58dfa40bf (diff) |
KVM: PPC: booke: add booke-level vcpu load/put
This gives us a place to put load/put actions that correspond to
code that is booke-specific but not specific to a particular core.
Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
-rw-r--r-- | arch/powerpc/kvm/44x.c | 3 | ||||
-rw-r--r-- | arch/powerpc/kvm/booke.c | 8 | ||||
-rw-r--r-- | arch/powerpc/kvm/booke.h | 3 | ||||
-rw-r--r-- | arch/powerpc/kvm/e500.c | 3 |
4 files changed, 17 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/44x.c b/arch/powerpc/kvm/44x.c index 7b612a76c701..879a1a70acd0 100644 --- a/arch/powerpc/kvm/44x.c +++ b/arch/powerpc/kvm/44x.c | |||
@@ -29,15 +29,18 @@ | |||
29 | #include <asm/kvm_ppc.h> | 29 | #include <asm/kvm_ppc.h> |
30 | 30 | ||
31 | #include "44x_tlb.h" | 31 | #include "44x_tlb.h" |
32 | #include "booke.h" | ||
32 | 33 | ||
33 | void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu) | 34 | void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu) |
34 | { | 35 | { |
36 | kvmppc_booke_vcpu_load(vcpu, cpu); | ||
35 | kvmppc_44x_tlb_load(vcpu); | 37 | kvmppc_44x_tlb_load(vcpu); |
36 | } | 38 | } |
37 | 39 | ||
38 | void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu) | 40 | void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu) |
39 | { | 41 | { |
40 | kvmppc_44x_tlb_put(vcpu); | 42 | kvmppc_44x_tlb_put(vcpu); |
43 | kvmppc_booke_vcpu_put(vcpu); | ||
41 | } | 44 | } |
42 | 45 | ||
43 | int kvmppc_core_check_processor_compat(void) | 46 | int kvmppc_core_check_processor_compat(void) |
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c index ee9e1ee9c858..a2456c7a1d87 100644 --- a/arch/powerpc/kvm/booke.c +++ b/arch/powerpc/kvm/booke.c | |||
@@ -968,6 +968,14 @@ void kvmppc_decrementer_func(unsigned long data) | |||
968 | kvmppc_set_tsr_bits(vcpu, TSR_DIS); | 968 | kvmppc_set_tsr_bits(vcpu, TSR_DIS); |
969 | } | 969 | } |
970 | 970 | ||
971 | void kvmppc_booke_vcpu_load(struct kvm_vcpu *vcpu, int cpu) | ||
972 | { | ||
973 | } | ||
974 | |||
975 | void kvmppc_booke_vcpu_put(struct kvm_vcpu *vcpu) | ||
976 | { | ||
977 | } | ||
978 | |||
971 | int __init kvmppc_booke_init(void) | 979 | int __init kvmppc_booke_init(void) |
972 | { | 980 | { |
973 | unsigned long ivor[16]; | 981 | unsigned long ivor[16]; |
diff --git a/arch/powerpc/kvm/booke.h b/arch/powerpc/kvm/booke.h index 2fe202705a3f..05d1d99428ce 100644 --- a/arch/powerpc/kvm/booke.h +++ b/arch/powerpc/kvm/booke.h | |||
@@ -71,4 +71,7 @@ void kvmppc_save_guest_spe(struct kvm_vcpu *vcpu); | |||
71 | /* high-level function, manages flags, host state */ | 71 | /* high-level function, manages flags, host state */ |
72 | void kvmppc_vcpu_disable_spe(struct kvm_vcpu *vcpu); | 72 | void kvmppc_vcpu_disable_spe(struct kvm_vcpu *vcpu); |
73 | 73 | ||
74 | void kvmppc_booke_vcpu_load(struct kvm_vcpu *vcpu, int cpu); | ||
75 | void kvmppc_booke_vcpu_put(struct kvm_vcpu *vcpu); | ||
76 | |||
74 | #endif /* __KVM_BOOKE_H__ */ | 77 | #endif /* __KVM_BOOKE_H__ */ |
diff --git a/arch/powerpc/kvm/e500.c b/arch/powerpc/kvm/e500.c index ddcd896fa2ff..2d5fe04d5eec 100644 --- a/arch/powerpc/kvm/e500.c +++ b/arch/powerpc/kvm/e500.c | |||
@@ -36,6 +36,7 @@ void kvmppc_core_load_guest_debugstate(struct kvm_vcpu *vcpu) | |||
36 | 36 | ||
37 | void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu) | 37 | void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu) |
38 | { | 38 | { |
39 | kvmppc_booke_vcpu_load(vcpu, cpu); | ||
39 | kvmppc_e500_tlb_load(vcpu, cpu); | 40 | kvmppc_e500_tlb_load(vcpu, cpu); |
40 | } | 41 | } |
41 | 42 | ||
@@ -47,6 +48,8 @@ void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu) | |||
47 | if (vcpu->arch.shadow_msr & MSR_SPE) | 48 | if (vcpu->arch.shadow_msr & MSR_SPE) |
48 | kvmppc_vcpu_disable_spe(vcpu); | 49 | kvmppc_vcpu_disable_spe(vcpu); |
49 | #endif | 50 | #endif |
51 | |||
52 | kvmppc_booke_vcpu_put(vcpu); | ||
50 | } | 53 | } |
51 | 54 | ||
52 | int kvmppc_core_check_processor_compat(void) | 55 | int kvmppc_core_check_processor_compat(void) |