KVM: PPC: Book3S: ifdef on CONFIG_KVM_BOOK3S_32_HANDLER for 32bit
The book3s_32 target can get built as module which means we don't see the config define for it in code. Instead, check on the bool define CONFIG_KVM_BOOK3S_32_HANDLER whenever we want to know whether we're building for a book3s_32 host. This fixes running book3s_32 kvm as a module for me. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
This commit is contained in:
parent
0a8eccefcb
commit
ab78475c76
|
@ -886,7 +886,7 @@ static int kvmppc_book3s_init(void)
|
||||||
r = kvm_init(NULL, sizeof(struct kvm_vcpu), 0, THIS_MODULE);
|
r = kvm_init(NULL, sizeof(struct kvm_vcpu), 0, THIS_MODULE);
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
#ifdef CONFIG_KVM_BOOK3S_32
|
#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
|
||||||
r = kvmppc_book3s_init_pr();
|
r = kvmppc_book3s_init_pr();
|
||||||
#endif
|
#endif
|
||||||
return r;
|
return r;
|
||||||
|
@ -895,7 +895,7 @@ static int kvmppc_book3s_init(void)
|
||||||
|
|
||||||
static void kvmppc_book3s_exit(void)
|
static void kvmppc_book3s_exit(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_KVM_BOOK3S_32
|
#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
|
||||||
kvmppc_book3s_exit_pr();
|
kvmppc_book3s_exit_pr();
|
||||||
#endif
|
#endif
|
||||||
kvm_exit();
|
kvm_exit();
|
||||||
|
@ -905,7 +905,7 @@ module_init(kvmppc_book3s_init);
|
||||||
module_exit(kvmppc_book3s_exit);
|
module_exit(kvmppc_book3s_exit);
|
||||||
|
|
||||||
/* On 32bit this is our one and only kernel module */
|
/* On 32bit this is our one and only kernel module */
|
||||||
#ifdef CONFIG_KVM_BOOK3S_32
|
#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
|
||||||
MODULE_ALIAS_MISCDEV(KVM_MINOR);
|
MODULE_ALIAS_MISCDEV(KVM_MINOR);
|
||||||
MODULE_ALIAS("devname:kvm");
|
MODULE_ALIAS("devname:kvm");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1153,7 +1153,7 @@ static struct kvm_vcpu *kvmppc_core_vcpu_create_pr(struct kvm *kvm,
|
||||||
goto free_vcpu;
|
goto free_vcpu;
|
||||||
vcpu->arch.book3s = vcpu_book3s;
|
vcpu->arch.book3s = vcpu_book3s;
|
||||||
|
|
||||||
#ifdef CONFIG_KVM_BOOK3S_32
|
#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
|
||||||
vcpu->arch.shadow_vcpu =
|
vcpu->arch.shadow_vcpu =
|
||||||
kzalloc(sizeof(*vcpu->arch.shadow_vcpu), GFP_KERNEL);
|
kzalloc(sizeof(*vcpu->arch.shadow_vcpu), GFP_KERNEL);
|
||||||
if (!vcpu->arch.shadow_vcpu)
|
if (!vcpu->arch.shadow_vcpu)
|
||||||
|
@ -1198,7 +1198,7 @@ static struct kvm_vcpu *kvmppc_core_vcpu_create_pr(struct kvm *kvm,
|
||||||
uninit_vcpu:
|
uninit_vcpu:
|
||||||
kvm_vcpu_uninit(vcpu);
|
kvm_vcpu_uninit(vcpu);
|
||||||
free_shadow_vcpu:
|
free_shadow_vcpu:
|
||||||
#ifdef CONFIG_KVM_BOOK3S_32
|
#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
|
||||||
kfree(vcpu->arch.shadow_vcpu);
|
kfree(vcpu->arch.shadow_vcpu);
|
||||||
free_vcpu3s:
|
free_vcpu3s:
|
||||||
#endif
|
#endif
|
||||||
|
@ -1215,7 +1215,7 @@ static void kvmppc_core_vcpu_free_pr(struct kvm_vcpu *vcpu)
|
||||||
|
|
||||||
free_page((unsigned long)vcpu->arch.shared & PAGE_MASK);
|
free_page((unsigned long)vcpu->arch.shared & PAGE_MASK);
|
||||||
kvm_vcpu_uninit(vcpu);
|
kvm_vcpu_uninit(vcpu);
|
||||||
#ifdef CONFIG_KVM_BOOK3S_32
|
#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
|
||||||
kfree(vcpu->arch.shadow_vcpu);
|
kfree(vcpu->arch.shadow_vcpu);
|
||||||
#endif
|
#endif
|
||||||
vfree(vcpu_book3s);
|
vfree(vcpu_book3s);
|
||||||
|
|
Loading…
Reference in New Issue