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 b67f35475b09361b024fa1f4c02ecc8c3bbca7e3..1cf202cb47d5466e4ab7bcad3c9e2890be3b7dc4 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: