]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[golan] Do not assume all devices are identical
authorMichael Brown <mcb30@ipxe.org>
Sun, 18 Mar 2018 13:40:23 +0000 (15:40 +0200)
committerMichael Brown <mcb30@ipxe.org>
Sun, 18 Mar 2018 13:41:21 +0000 (15:41 +0200)
Remove the global variable shomron_nodnic_supported, since it may have
different values for different PCI devices.

Originally-fixed-by: Mohammed Taha <mohammedt@mellanox.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/infiniband/golan.c

index 61331d4c1af47bb9d0e19fc6796fb1921eb43452..1858da7cf12b9bd116782281aa3f321904c5cab7 100755 (executable)
@@ -2586,8 +2586,6 @@ struct flexboot_nodnic_callbacks shomron_nodnic_callbacks = {
        .tx_uar_send_doorbell_fn = shomron_tx_uar_send_db,
 };
 
-static int shomron_nodnic_supported = 0;
-
 static int shomron_nodnic_is_supported ( struct pci_device *pci ) {
        if ( DEVICE_IS_CIB ( pci->device ) )
                return 0;
@@ -2607,8 +2605,7 @@ static int golan_probe ( struct pci_device *pci ) {
                goto probe_done;
        }
 
-       shomron_nodnic_supported = shomron_nodnic_is_supported ( pci );
-       if ( shomron_nodnic_supported ) {
+       if ( shomron_nodnic_is_supported ( pci ) ) {
                DBG ( "%s: Using NODNIC driver\n", __FUNCTION__ );
                rc = flexboot_nodnic_probe ( pci, &shomron_nodnic_callbacks, NULL );
        } else {
@@ -2624,7 +2621,7 @@ probe_done:
 static void golan_remove ( struct pci_device *pci ) {
        DBG ( "%s: start\n", __FUNCTION__ );
 
-       if ( ! shomron_nodnic_supported ) {
+       if ( ! shomron_nodnic_is_supported ( pci ) ) {
                DBG ( "%s: Using normal driver remove\n", __FUNCTION__ );
                golan_remove_normal ( pci );
                return;