Index: /trunk/src/VBox/Devices/Bus/DevPciIch9.cpp
===================================================================
--- /trunk/src/VBox/Devices/Bus/DevPciIch9.cpp	(revision 64907)
+++ /trunk/src/VBox/Devices/Bus/DevPciIch9.cpp	(revision 64908)
@@ -1910,10 +1910,14 @@
  *
  * @param   pDev                The PCI device to update the mappings for.
- */
-static void devpciR3UpdateMappings(PPDMPCIDEV pPciDev)
+ * @param   fP2PBridge          Whether this is a PCI to PCI bridge or not.
+ */
+static void devpciR3UpdateMappings(PPDMPCIDEV pPciDev, bool fP2PBridge)
 {
     uint16_t const u16Cmd = ich9pciGetWord(pPciDev, VBOX_PCI_COMMAND);
     for (unsigned iRegion = 0; iRegion < VBOX_PCI_NUM_REGIONS; iRegion++)
     {
+        /* Skip over BAR2..BAR5 for bridges, as they have a different meaning there. */
+        if (fP2PBridge && iRegion >= 2 && iRegion <= 5)
+            continue;
         PCIIORegion   *pRegion  = &pPciDev->Int.s.aIORegions[iRegion];
         uint64_t const cbRegion = pRegion->size;
@@ -2231,5 +2235,5 @@
              */
             if (fUpdateMappings)
-                devpciR3UpdateMappings(pPciDev);
+                devpciR3UpdateMappings(pPciDev, fP2PBridge);
         }
     }
