Index: /trunk/src/VBox/Devices/PC/BIOS/pcibios.c
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/pcibios.c	(revision 42792)
+++ /trunk/src/VBox/Devices/PC/BIOS/pcibios.c	(revision 42793)
@@ -203,5 +203,11 @@
  * probing will end.
  */
-#define INDEX_NOT_FOUND     0xFFFF
+#define BUSDEVFN_NOT_FOUND  0xFFFF
+
+/* In the search algorithm, we decrement the device index every time
+ * a matching device is found. If the requested device is indeed found,
+ * the index will have decremented down to -1/0xFFFF.
+ */
+#define INDEX_DEV_FOUND     0xFFFF
 
 /* Find a specified PCI device, either by vendor+device ID or class.
@@ -296,9 +302,9 @@
     } while ((bus_dev_fn >> 8) <= max_bus);
 
-    if (index == INDEX_NOT_FOUND)
+    if (index == INDEX_DEV_FOUND)
         BX_DEBUG_PCI("PCI: Device found (%02X:%%02X:%01X)\n", bus_dev_fn >> 8,
                      bus_dev_fn >> 3 & 31, bus_dev_fn & 7);
 
-    return index == INDEX_NOT_FOUND ? bus_dev_fn : INDEX_NOT_FOUND;
+    return index == INDEX_DEV_FOUND ? bus_dev_fn : BUSDEVFN_NOT_FOUND;
 }
 
@@ -330,5 +336,5 @@
         } else {
             device = PCIxx(find_device)(DX | (uint32_t)CX << 16, SI, 0);
-            if (device == INDEX_NOT_FOUND) {
+            if (device == BUSDEVFN_NOT_FOUND) {
                 SET_AH(DEVICE_NOT_FOUND);
                 SET_CF();
@@ -340,5 +346,5 @@
     case FIND_PCI_CLASS_CODE:
         device = PCIxx(find_device)(ECX, SI, 1);
-        if (device == INDEX_NOT_FOUND) {
+        if (device == BUSDEVFN_NOT_FOUND) {
             SET_AH(DEVICE_NOT_FOUND);
             SET_CF();
