diff options
author | Alexey Kardashevskiy <aik@ozlabs.ru> | 2016-03-17 22:50:42 -0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-03-22 07:02:51 -0400 |
commit | 31217db720186edc7ae3c4354e5fa5848bb28358 (patch) | |
tree | b18b49ccbf98cc9d2c50cc7cb53903decc7bb5ae /arch/powerpc/kvm/book3s_64_vio_hv.c | |
parent | ef697a712a6165aea7779c295604b099e8bfae2e (diff) |
KVM: PPC: Create a virtual-mode only TCE table handlers
Upcoming in-kernel VFIO acceleration needs different handling in real
and virtual modes which makes it hard to support both modes in
the same handler.
This creates a copy of kvmppc_rm_h_stuff_tce and kvmppc_rm_h_put_tce
in addition to the existing kvmppc_rm_h_put_tce_indirect.
This also fixes linker breakage when only PR KVM was selected (leaving
HV KVM off): the kvmppc_h_put_tce/kvmppc_h_stuff_tce functions
would not compile at all and the linked would fail.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/powerpc/kvm/book3s_64_vio_hv.c')
-rw-r--r-- | arch/powerpc/kvm/book3s_64_vio_hv.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/powerpc/kvm/book3s_64_vio_hv.c b/arch/powerpc/kvm/book3s_64_vio_hv.c index f88b859af53b..d461c440889a 100644 --- a/arch/powerpc/kvm/book3s_64_vio_hv.c +++ b/arch/powerpc/kvm/book3s_64_vio_hv.c | |||
@@ -180,8 +180,8 @@ long kvmppc_gpa_to_ua(struct kvm *kvm, unsigned long gpa, | |||
180 | EXPORT_SYMBOL_GPL(kvmppc_gpa_to_ua); | 180 | EXPORT_SYMBOL_GPL(kvmppc_gpa_to_ua); |
181 | 181 | ||
182 | #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE | 182 | #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE |
183 | long kvmppc_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn, | 183 | long kvmppc_rm_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn, |
184 | unsigned long ioba, unsigned long tce) | 184 | unsigned long ioba, unsigned long tce) |
185 | { | 185 | { |
186 | struct kvmppc_spapr_tce_table *stt = kvmppc_find_table(vcpu, liobn); | 186 | struct kvmppc_spapr_tce_table *stt = kvmppc_find_table(vcpu, liobn); |
187 | long ret; | 187 | long ret; |
@@ -204,7 +204,6 @@ long kvmppc_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn, | |||
204 | 204 | ||
205 | return H_SUCCESS; | 205 | return H_SUCCESS; |
206 | } | 206 | } |
207 | EXPORT_SYMBOL_GPL(kvmppc_h_put_tce); | ||
208 | 207 | ||
209 | static long kvmppc_rm_ua_to_hpa(struct kvm_vcpu *vcpu, | 208 | static long kvmppc_rm_ua_to_hpa(struct kvm_vcpu *vcpu, |
210 | unsigned long ua, unsigned long *phpa) | 209 | unsigned long ua, unsigned long *phpa) |
@@ -296,7 +295,7 @@ unlock_exit: | |||
296 | return ret; | 295 | return ret; |
297 | } | 296 | } |
298 | 297 | ||
299 | long kvmppc_h_stuff_tce(struct kvm_vcpu *vcpu, | 298 | long kvmppc_rm_h_stuff_tce(struct kvm_vcpu *vcpu, |
300 | unsigned long liobn, unsigned long ioba, | 299 | unsigned long liobn, unsigned long ioba, |
301 | unsigned long tce_value, unsigned long npages) | 300 | unsigned long tce_value, unsigned long npages) |
302 | { | 301 | { |
@@ -320,7 +319,6 @@ long kvmppc_h_stuff_tce(struct kvm_vcpu *vcpu, | |||
320 | 319 | ||
321 | return H_SUCCESS; | 320 | return H_SUCCESS; |
322 | } | 321 | } |
323 | EXPORT_SYMBOL_GPL(kvmppc_h_stuff_tce); | ||
324 | 322 | ||
325 | long kvmppc_h_get_tce(struct kvm_vcpu *vcpu, unsigned long liobn, | 323 | long kvmppc_h_get_tce(struct kvm_vcpu *vcpu, unsigned long liobn, |
326 | unsigned long ioba) | 324 | unsigned long ioba) |