aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2012-01-16 10:50:10 -0500
committerAvi Kivity <avi@redhat.com>2012-03-05 07:57:25 -0500
commitb4e706111d501991c59d2af23a299ab52a06b03d (patch)
treeb341991a0653307f026a6be570b8de5c62b40ea1 /arch/powerpc/include/asm
parent9cf7c0e465197fa97972428e93162318e917f8ed (diff)
KVM: PPC: Convert RMA allocation into generic code
We have code to allocate big chunks of linear memory on bootup for later use. This code is currently used for RMA allocation, but can be useful beyond that extent. Make it generic so we can reuse it for other stuff later. Signed-off-by: Alexander Graf <agraf@suse.de> Acked-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/include/asm')
-rw-r--r--arch/powerpc/include/asm/kvm_host.h7
-rw-r--r--arch/powerpc/include/asm/kvm_ppc.h8
2 files changed, 8 insertions, 7 deletions
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index af438b1e8a3c..8221e717bbce 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -173,12 +173,13 @@ struct kvmppc_spapr_tce_table {
173 struct page *pages[0]; 173 struct page *pages[0];
174}; 174};
175 175
176struct kvmppc_rma_info { 176struct kvmppc_linear_info {
177 void *base_virt; 177 void *base_virt;
178 unsigned long base_pfn; 178 unsigned long base_pfn;
179 unsigned long npages; 179 unsigned long npages;
180 struct list_head list; 180 struct list_head list;
181 atomic_t use_count; 181 atomic_t use_count;
182 int type;
182}; 183};
183 184
184/* 185/*
@@ -224,7 +225,7 @@ struct kvm_arch {
224 int tlbie_lock; 225 int tlbie_lock;
225 unsigned long lpcr; 226 unsigned long lpcr;
226 unsigned long rmor; 227 unsigned long rmor;
227 struct kvmppc_rma_info *rma; 228 struct kvmppc_linear_info *rma;
228 unsigned long vrma_slb_v; 229 unsigned long vrma_slb_v;
229 int rma_setup_done; 230 int rma_setup_done;
230 int using_mmu_notifiers; 231 int using_mmu_notifiers;
diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
index a61b5b5047d6..1c37a2f8d0f4 100644
--- a/arch/powerpc/include/asm/kvm_ppc.h
+++ b/arch/powerpc/include/asm/kvm_ppc.h
@@ -128,8 +128,8 @@ extern long kvm_vm_ioctl_create_spapr_tce(struct kvm *kvm,
128 struct kvm_create_spapr_tce *args); 128 struct kvm_create_spapr_tce *args);
129extern long kvm_vm_ioctl_allocate_rma(struct kvm *kvm, 129extern long kvm_vm_ioctl_allocate_rma(struct kvm *kvm,
130 struct kvm_allocate_rma *rma); 130 struct kvm_allocate_rma *rma);
131extern struct kvmppc_rma_info *kvm_alloc_rma(void); 131extern struct kvmppc_linear_info *kvm_alloc_rma(void);
132extern void kvm_release_rma(struct kvmppc_rma_info *ri); 132extern void kvm_release_rma(struct kvmppc_linear_info *ri);
133extern int kvmppc_core_init_vm(struct kvm *kvm); 133extern int kvmppc_core_init_vm(struct kvm *kvm);
134extern void kvmppc_core_destroy_vm(struct kvm *kvm); 134extern void kvmppc_core_destroy_vm(struct kvm *kvm);
135extern int kvmppc_core_prepare_memory_region(struct kvm *kvm, 135extern int kvmppc_core_prepare_memory_region(struct kvm *kvm,
@@ -187,13 +187,13 @@ static inline void kvmppc_set_xics_phys(int cpu, unsigned long addr)
187 paca[cpu].kvm_hstate.xics_phys = addr; 187 paca[cpu].kvm_hstate.xics_phys = addr;
188} 188}
189 189
190extern void kvm_rma_init(void); 190extern void kvm_linear_init(void);
191 191
192#else 192#else
193static inline void kvmppc_set_xics_phys(int cpu, unsigned long addr) 193static inline void kvmppc_set_xics_phys(int cpu, unsigned long addr)
194{} 194{}
195 195
196static inline void kvm_rma_init(void) 196static inline void kvm_linear_init(void)
197{} 197{}
198#endif 198#endif
199 199