aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/kvm/kvm_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/kvm/kvm_main.c')
-rw-r--r--drivers/kvm/kvm_main.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index b19734606cd9..9ea9277014aa 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -255,14 +255,22 @@ int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id)
255 if (r < 0) 255 if (r < 0)
256 goto fail_free_pio_data; 256 goto fail_free_pio_data;
257 257
258 if (irqchip_in_kernel(kvm)) {
259 r = kvm_create_lapic(vcpu);
260 if (r < 0)
261 goto fail_mmu_destroy;
262 }
263
258 return 0; 264 return 0;
259 265
266fail_mmu_destroy:
267 kvm_mmu_destroy(vcpu);
260fail_free_pio_data: 268fail_free_pio_data:
261 free_page((unsigned long)vcpu->pio_data); 269 free_page((unsigned long)vcpu->pio_data);
262fail_free_run: 270fail_free_run:
263 free_page((unsigned long)vcpu->run); 271 free_page((unsigned long)vcpu->run);
264fail: 272fail:
265 return -ENOMEM; 273 return r;
266} 274}
267EXPORT_SYMBOL_GPL(kvm_vcpu_init); 275EXPORT_SYMBOL_GPL(kvm_vcpu_init);
268 276