diff options
author | Avi Kivity <avi@qumranet.com> | 2007-03-01 19:21:03 +0200 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-03-18 10:49:06 +0200 |
commit | ca45aaae1ef98890ac4e3ee48d65aa22401fd1dc (patch) | |
tree | 932e158722cf96b9090e36e21449f10f6f7c2525 /drivers/kvm/kvm_main.c | |
parent | b720a3be1abd0cb5b9b530c0a1b4044fec4de60e (diff) | |
download | lwn-ca45aaae1ef98890ac4e3ee48d65aa22401fd1dc.tar.gz lwn-ca45aaae1ef98890ac4e3ee48d65aa22401fd1dc.zip |
KVM: Unset kvm_arch_ops if arch module loading failed
Otherwise, the core module thinks the arch module is loaded, and won't
let you reload it after you've fixed the bug.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm/kvm_main.c')
-rw-r--r-- | drivers/kvm/kvm_main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c index a163bca38973..dc7a8c78cbf9 100644 --- a/drivers/kvm/kvm_main.c +++ b/drivers/kvm/kvm_main.c @@ -2464,7 +2464,7 @@ int kvm_init_arch(struct kvm_arch_ops *ops, struct module *module) r = kvm_arch_ops->hardware_setup(); if (r < 0) - return r; + goto out; on_each_cpu(kvm_arch_ops->hardware_enable, NULL, 0, 1); r = register_cpu_notifier(&kvm_cpu_notifier); @@ -2500,6 +2500,8 @@ out_free_2: out_free_1: on_each_cpu(kvm_arch_ops->hardware_disable, NULL, 0, 1); kvm_arch_ops->hardware_unsetup(); +out: + kvm_arch_ops = NULL; return r; } |