Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 80722
b: refs/heads/master
c: cb498ea
h: refs/heads/master
v: v3
  • Loading branch information
Zhang Xiantao authored and Avi Kivity committed Jan 30, 2008
1 parent 29f5227 commit 3aa0059
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 46 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e9b11c17552afe684e9e5d0444309a3ddf410116
refs/heads/master: cb498ea2ce1d3f3c0bc0a2522241dca10263e437
4 changes: 2 additions & 2 deletions trunk/drivers/kvm/kvm.h
Original file line number Diff line number Diff line change
Expand Up @@ -495,9 +495,9 @@ void vcpu_put(struct kvm_vcpu *vcpu);
void decache_vcpus_on_cpu(int cpu);


int kvm_init_x86(struct kvm_x86_ops *ops, unsigned int vcpu_size,
int kvm_init(struct kvm_x86_ops *ops, unsigned int vcpu_size,
struct module *module);
void kvm_exit_x86(void);
void kvm_exit(void);

int kvm_mmu_module_init(void);
void kvm_mmu_module_exit(void);
Expand Down
61 changes: 22 additions & 39 deletions trunk/drivers/kvm/kvm_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1434,12 +1434,27 @@ static void kvm_sched_out(struct preempt_notifier *pn,
kvm_arch_vcpu_put(vcpu);
}

int kvm_init_x86(struct kvm_x86_ops *ops, unsigned int vcpu_size,
int kvm_init(struct kvm_x86_ops *ops, unsigned int vcpu_size,
struct module *module)
{
int r;
int cpu;

r = kvm_mmu_module_init();
if (r)
goto out4;

kvm_init_debug();

kvm_arch_init();

bad_page = alloc_page(GFP_KERNEL | __GFP_ZERO);

if (bad_page == NULL) {
r = -ENOMEM;
goto out;
}

if (kvm_x86_ops) {
printk(KERN_ERR "kvm: already loaded the other module\n");
return -EEXIST;
Expand Down Expand Up @@ -1520,11 +1535,14 @@ int kvm_init_x86(struct kvm_x86_ops *ops, unsigned int vcpu_size,
kvm_arch_hardware_unsetup();
out:
kvm_x86_ops = NULL;
kvm_exit_debug();
kvm_mmu_module_exit();
out4:
return r;
}
EXPORT_SYMBOL_GPL(kvm_init_x86);
EXPORT_SYMBOL_GPL(kvm_init);

void kvm_exit_x86(void)
void kvm_exit(void)
{
misc_deregister(&kvm_dev);
kmem_cache_destroy(kvm_vcpu_cache);
Expand All @@ -1535,43 +1553,8 @@ void kvm_exit_x86(void)
on_each_cpu(hardware_disable, NULL, 0, 1);
kvm_arch_hardware_unsetup();
kvm_x86_ops = NULL;
}
EXPORT_SYMBOL_GPL(kvm_exit_x86);

static __init int kvm_init(void)
{
int r;

r = kvm_mmu_module_init();
if (r)
goto out4;

kvm_init_debug();

kvm_arch_init();

bad_page = alloc_page(GFP_KERNEL | __GFP_ZERO);

if (bad_page == NULL) {
r = -ENOMEM;
goto out;
}

return 0;

out:
kvm_exit_debug();
kvm_mmu_module_exit();
out4:
return r;
}

static __exit void kvm_exit(void)
{
kvm_exit_debug();
__free_page(bad_page);
kvm_mmu_module_exit();
}

module_init(kvm_init)
module_exit(kvm_exit)
EXPORT_SYMBOL_GPL(kvm_exit);
4 changes: 2 additions & 2 deletions trunk/drivers/kvm/svm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1723,13 +1723,13 @@ static struct kvm_x86_ops svm_x86_ops = {

static int __init svm_init(void)
{
return kvm_init_x86(&svm_x86_ops, sizeof(struct vcpu_svm),
return kvm_init(&svm_x86_ops, sizeof(struct vcpu_svm),
THIS_MODULE);
}

static void __exit svm_exit(void)
{
kvm_exit_x86();
kvm_exit();
}

module_init(svm_init)
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/kvm/vmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -2677,7 +2677,7 @@ static int __init vmx_init(void)
memset(iova, 0xff, PAGE_SIZE);
kunmap(vmx_io_bitmap_b);

r = kvm_init_x86(&vmx_x86_ops, sizeof(struct vcpu_vmx), THIS_MODULE);
r = kvm_init(&vmx_x86_ops, sizeof(struct vcpu_vmx), THIS_MODULE);
if (r)
goto out1;

Expand All @@ -2698,7 +2698,7 @@ static void __exit vmx_exit(void)
__free_page(vmx_io_bitmap_b);
__free_page(vmx_io_bitmap_a);

kvm_exit_x86();
kvm_exit();
}

module_init(vmx_init)
Expand Down

0 comments on commit 3aa0059

Please sign in to comment.