Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 33030)
+++ /trunk/Config.kmk	(revision 33031)
@@ -397,4 +397,6 @@
 # Enable this setting to force a fallback to default DMI data on configuration errors
 VBOX_BIOS_DMI_FALLBACK =
+# Enable MSI support in devices
+# VBOX_WITH_MSI_DEVICES = 1
 # Enable host network interface API.
 if1of ($(KBUILD_TARGET), darwin freebsd linux solaris win)
Index: /trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp	(revision 33030)
+++ /trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp	(revision 33031)
@@ -1631,5 +1631,4 @@
 
 //#define HDA_AS_PCI_EXPRESS
-//#define HDA_WITH_MSI
 
 /**
@@ -1669,5 +1668,5 @@
     PCIDevSetDeviceId           (&pThis->dev, 0x30f7); /* HP Pavilion dv4t-1300 */
 #else
-#if 1 
+#if 1
     PCIDevSetVendorId           (&pThis->dev, 0x8086); /* 00 ro - intel. */
     PCIDevSetDeviceId           (&pThis->dev, 0x2668); /* 02 ro - 82801 / 82801aa(?). */
@@ -1695,5 +1694,5 @@
 #if defined(HDA_AS_PCI_EXPRESS)
     PCIDevSetCapabilityList     (&pThis->dev, 0x80);
-#elif defined(HDA_WITH_MSI)
+#elif defined(VBOX_WITH_MSI_DEVICES)
     PCIDevSetCapabilityList     (&pThis->dev, 0x60);
 #else
@@ -1767,5 +1766,5 @@
         return rc;
 
-#ifdef HDA_WITH_MSI
+#ifdef VBOX_WITH_MSI_DEVICES
     PDMMSIREG aMsiReg;
     aMsiReg.cVectors = 1;
@@ -1774,7 +1773,9 @@
     aMsiReg.iMsiFlags = 0;
     rc = PDMDevHlpPCIRegisterMsi(pDevIns, &aMsiReg);
-    AssertRC(rc);
     if (RT_FAILURE (rc))
-        return rc;
+    {
+        LogRel(("Chipset cannot do MSI: %Rrc\n", rc));
+        PCIDevSetCapabilityList     (&pThis->dev, 0x50);
+    }
 #endif
 
Index: /trunk/src/VBox/Devices/Storage/DevAHCI.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DevAHCI.cpp	(revision 33030)
+++ /trunk/src/VBox/Devices/Storage/DevAHCI.cpp	(revision 33031)
@@ -70,7 +70,4 @@
  * This was before the config was added and ahciIOTasks was dropped. */
 #define AHCI_SAVED_STATE_VERSION_VBOX_30        2
-
-/* If AHCI shall emulate MSI support */
-#define AHCI_WITH_MSI
 
 /**
@@ -7853,5 +7850,5 @@
     PCIDevSetDeviceId    (&pThis->dev, 0x2829); /* ICH-8M */
     PCIDevSetCommand     (&pThis->dev, 0x0000);
-#ifdef AHCI_WITH_MSI
+#ifdef VBOX_WITH_MSI_DEVICES
     PCIDevSetStatus      (&pThis->dev, VBOX_PCI_STATUS_CAP_LIST);
     PCIDevSetCapabilityList(&pThis->dev, 0x80);
@@ -7885,5 +7882,5 @@
         return rc;
 
-#ifdef AHCI_WITH_MSI
+#ifdef VBOX_WITH_MSI_DEVICES
     PDMMSIREG aMsiReg;
     aMsiReg.cVectors = 1;
Index: /trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp	(revision 33030)
+++ /trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp	(revision 33031)
@@ -48,7 +48,4 @@
 /** Maximum number of entries in the release log. */
 #define MAX_REL_LOG_ERRORS 1024
-
-/* If LSI shall emulate MSI support */
-#define LSILOGIC_WITH_MSI
 
 /**
@@ -5017,5 +5014,5 @@
     PCIDevSetInterruptPin(&pThis->PciDev,   0x01); /* Interrupt pin A */
 
-#ifdef LSILOGIC_WITH_MSI
+#ifdef VBOX_WITH_MSI_DEVICES
     PCIDevSetStatus(&pThis->PciDev,   VBOX_PCI_STATUS_CAP_LIST);
     PCIDevSetCapabilityList(&pThis->PciDev, 0x80);
@@ -5035,5 +5032,5 @@
         return rc;
 
-#ifdef LSILOGIC_WITH_MSI
+#ifdef VBOX_WITH_MSI_DEVICES
     PDMMSIREG aMsiReg;
     aMsiReg.cVectors = 1;
@@ -5046,4 +5043,5 @@
         LogRel(("Chipset cannot do MSI: %Rrc\n", rc));
         /* That's OK, we can work without MSI */
+        PCIDevSetCapabilityList(&pThis->PciDev, 0x0);
     }
 #endif
