|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   xen-devel
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
 | 
 |  | 
  
    |  |  |