On Tue, Oct 27, 2009 at 01:10:43PM -0200, Marcelo Tosatti wrote: > Otherwise kvm will leak memory on multiple KVM_CREATE_IRQCHIP. > > CC: stable@xxxxxxxxxx > Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> > > Index: kvm/arch/x86/kvm/x86.c > =================================================================== > --- kvm.orig/arch/x86/kvm/x86.c > +++ kvm/arch/x86/kvm/x86.c > @@ -2285,6 +2285,9 @@ long kvm_arch_vm_ioctl(struct file *filp > goto out; > break; > case KVM_CREATE_IRQCHIP: > + r = -EEXIST; > + if (kvm->arch.vpic) > + goto out; > r = -ENOMEM; > kvm->arch.vpic = kvm_create_pic(kvm); > if (kvm->arch.vpic) { > @@ -2300,6 +2303,8 @@ long kvm_arch_vm_ioctl(struct file *filp > if (r) { > kfree(kvm->arch.vpic); > kfree(kvm->arch.vioapic); > + kvm->arch.vpic = NULL; > + kvm->arch.vioapic = NULL; > goto out; > } > break; Is there a lock that protects this structure? Can memory leak still occur if multiple threads call KVM_CREATE_IRQCHIP in parallel? > > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html