[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Xen HV PATCH] VT-d: Fix resource leaks on error paths
Will need an Ack from a VT-d maintainer (Allen Kay is listed in our MAINTAINERS file, and is CC'ed). Also needs a Signed-off-by line. -- Keir On 11/05/2011 12:45, "Igor Mammedov" <imammedo@xxxxxxxxxx> wrote: > On error exit from function, maped pages should be unmapped > and acquired locks released. > > diff -r 4b0692880dfa -r da93d9e43b3c xen/drivers/passthrough/vtd/intremap.c > --- a/xen/drivers/passthrough/vtd/intremap.c Thu May 05 17:40:34 2011 +0100 > +++ b/xen/drivers/passthrough/vtd/intremap.c Wed May 11 12:29:54 2011 +0200 > @@ -210,7 +210,8 @@ > if ( iremap_entries ) > unmap_vtd_domain_page(iremap_entries); > > - ir_ctrl->iremap_num++; > + if ( i < IREMAP_ENTRY_NR ) > + ir_ctrl->iremap_num++; > return i; > } > > @@ -246,6 +247,8 @@ > dprintk(XENLOG_ERR VTDPREFIX, > "%s: index (%d) get an empty entry!\n", > __func__, index); > + unmap_vtd_domain_page(iremap_entries); > + spin_unlock_irqrestore(&ir_ctrl->iremap_lock, flags); > return -EFAULT; > } > > @@ -281,7 +284,8 @@ > if ( index < 0 ) > { > index = alloc_remap_entry(iommu); > - apic_pin_2_ir_idx[apic][ioapic_pin] = index; > + if ( index < IREMAP_ENTRY_NR ) > + apic_pin_2_ir_idx[apic][ioapic_pin] = index; > } > > if ( index > IREMAP_ENTRY_NR - 1 ) > @@ -546,6 +550,8 @@ > dprintk(XENLOG_ERR VTDPREFIX, > "%s: index (%d) get an empty entry!\n", > __func__, index); > + unmap_vtd_domain_page(iremap_entries); > + spin_unlock_irqrestore(&ir_ctrl->iremap_lock, flags); > return -EFAULT; > } > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |