pci_alloc_msix: Fail if no MSI-X vectors available
authorMichael Neumann <mneumann@ntecs.de>
Fri, 5 Mar 2010 23:20:12 +0000 (00:20 +0100)
committerMichael Neumann <mneumann@ntecs.de>
Fri, 5 Mar 2010 23:20:12 +0000 (00:20 +0100)
Otherwise bootverbose could lead to a kernel crash.
This commit also lets the igb driver correctly fall-back
to non MSI-X code. MSI-X is currently not supported by
DragonFly.

sys/bus/pci/pci.c

index 3315d36..2cbfe78 100644 (file)
@@ -1484,6 +1484,14 @@ pci_alloc_msix_method(device_t dev, device_t child, int *count)
        }
        actual = i;
 
+       if (actual == 0) {
+               if (bootverbose) {
+                       device_printf(child,
+                           "could not allocate any MSI-X vectors\n");
+               }
+               return  (ENXIO);
+       }
+
        if (bootverbose) {
                rle = resource_list_find(&dinfo->resources, SYS_RES_IRQ, 1);
                if (actual == 1)