Commit 94fa9d99 authored by Scott Wood's avatar Scott Wood Committed by Avi Kivity

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: default avatarScott Wood <scottwood@freescale.com>
Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 043cc4d7
...@@ -29,15 +29,18 @@ ...@@ -29,15 +29,18 @@
#include <asm/kvm_ppc.h> #include <asm/kvm_ppc.h>
#include "44x_tlb.h" #include "44x_tlb.h"
#include "booke.h"
void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu) void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
{ {
kvmppc_booke_vcpu_load(vcpu, cpu);
kvmppc_44x_tlb_load(vcpu); kvmppc_44x_tlb_load(vcpu);
} }
void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu) void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu)
{ {
kvmppc_44x_tlb_put(vcpu); kvmppc_44x_tlb_put(vcpu);
kvmppc_booke_vcpu_put(vcpu);
} }
int kvmppc_core_check_processor_compat(void) int kvmppc_core_check_processor_compat(void)
......
...@@ -968,6 +968,14 @@ void kvmppc_decrementer_func(unsigned long data) ...@@ -968,6 +968,14 @@ void kvmppc_decrementer_func(unsigned long data)
kvmppc_set_tsr_bits(vcpu, TSR_DIS); kvmppc_set_tsr_bits(vcpu, TSR_DIS);
} }
void kvmppc_booke_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
{
}
void kvmppc_booke_vcpu_put(struct kvm_vcpu *vcpu)
{
}
int __init kvmppc_booke_init(void) int __init kvmppc_booke_init(void)
{ {
unsigned long ivor[16]; unsigned long ivor[16];
......
...@@ -71,4 +71,7 @@ void kvmppc_save_guest_spe(struct kvm_vcpu *vcpu); ...@@ -71,4 +71,7 @@ void kvmppc_save_guest_spe(struct kvm_vcpu *vcpu);
/* high-level function, manages flags, host state */ /* high-level function, manages flags, host state */
void kvmppc_vcpu_disable_spe(struct kvm_vcpu *vcpu); void kvmppc_vcpu_disable_spe(struct kvm_vcpu *vcpu);
void kvmppc_booke_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
void kvmppc_booke_vcpu_put(struct kvm_vcpu *vcpu);
#endif /* __KVM_BOOKE_H__ */ #endif /* __KVM_BOOKE_H__ */
...@@ -36,6 +36,7 @@ void kvmppc_core_load_guest_debugstate(struct kvm_vcpu *vcpu) ...@@ -36,6 +36,7 @@ void kvmppc_core_load_guest_debugstate(struct kvm_vcpu *vcpu)
void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu) void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
{ {
kvmppc_booke_vcpu_load(vcpu, cpu);
kvmppc_e500_tlb_load(vcpu, cpu); kvmppc_e500_tlb_load(vcpu, cpu);
} }
...@@ -47,6 +48,8 @@ void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu) ...@@ -47,6 +48,8 @@ void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu)
if (vcpu->arch.shadow_msr & MSR_SPE) if (vcpu->arch.shadow_msr & MSR_SPE)
kvmppc_vcpu_disable_spe(vcpu); kvmppc_vcpu_disable_spe(vcpu);
#endif #endif
kvmppc_booke_vcpu_put(vcpu);
} }
int kvmppc_core_check_processor_compat(void) int kvmppc_core_check_processor_compat(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment