[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



Thanks Keir,

I'll repost patch and  cc Allen

 On 05/12/2011 10:11 AM, Keir Fraser wrote:
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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.