Fix passthrough of PCI capability structures.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 8 Jul 2008 08:26:58 +0000 (09:26 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 8 Jul 2008 08:26:58 +0000 (09:26 +0100)
Signed-off-by: Naoki Nishiguchi <nisiguti@jp.fujitsu.com>
tools/ioemu/hw/pass-through.c

index 9facc6ae52e754b86366e2b197dda588f6283cd4..61ac386fa0efdcedf8740f028be016299901d327 100644 (file)
@@ -827,7 +827,7 @@ void pt_iomem_map(PCIDevice *d, int i, uint32_t e_phys, uint32_t e_size,
     if ( e_size == 0 )
         return;
 
-    if ( !first_map )
+    if ( !first_map && old_ebase != -1 )
     {
         add_msix_mapping(assigned_device, i);
         /* Remove old mapping */
@@ -883,7 +883,7 @@ void pt_ioport_map(PCIDevice *d, int i,
     if ( e_size == 0 )
         return;
 
-    if ( !first_map )
+    if ( !first_map && old_ebase != -1 )
     {
         /* Remove old mapping */
         ret = xc_domain_ioport_mapping(xc_handle, domid, old_ebase,