KVM: x86: fix memory leak in vmx_init
authorYang Zhang <yang.z.zhang@Intel.com>
Mon, 8 Apr 2013 07:26:33 +0000 (15:26 +0800)
committerGleb Natapov <gleb@redhat.com>
Mon, 8 Apr 2013 07:56:08 +0000 (10:56 +0300)
Free vmx_msr_bitmap_longmode_x2apic and vmx_msr_bitmap_longmode if
kvm_init() fails.

Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
arch/x86/kvm/vmx.c

index b67f354..1cf202c 100644 (file)
@@ -7741,7 +7741,7 @@ static int __init vmx_init(void)
        r = kvm_init(&vmx_x86_ops, sizeof(struct vcpu_vmx),
                     __alignof__(struct vcpu_vmx), THIS_MODULE);
        if (r)
-               goto out3;
+               goto out5;
 
 #ifdef CONFIG_KEXEC
        rcu_assign_pointer(crash_vmclear_loaded_vmcss,
@@ -7789,6 +7789,8 @@ static int __init vmx_init(void)
 
        return 0;
 
+out5:
+       free_page((unsigned long)vmx_msr_bitmap_longmode_x2apic);
 out4:
        free_page((unsigned long)vmx_msr_bitmap_longmode);
 out3: