]> Pileus Git - ~andy/linux/blobdiff - drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
Merge branch 'for-3.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
[~andy/linux] / drivers / net / ethernet / qlogic / qlcnic / qlcnic_main.c
index 1f79d47c45fa3c9ec9b747958c71428cd0850ce5..1222865cfb7319b4ec085c035c00c862cff6dcd2 100644 (file)
@@ -816,9 +816,10 @@ static int qlcnic_82xx_setup_intr(struct qlcnic_adapter *adapter)
 
                if (!(adapter->flags & QLCNIC_MSIX_ENABLED)) {
                        qlcnic_disable_multi_tx(adapter);
+                       adapter->drv_sds_rings = QLCNIC_SINGLE_RING;
 
                        err = qlcnic_enable_msi_legacy(adapter);
-                       if (!err)
+                       if (err)
                                return err;
                }
        }
@@ -1837,6 +1838,7 @@ int __qlcnic_up(struct qlcnic_adapter *adapter, struct net_device *netdev)
        qlcnic_linkevent_request(adapter, 1);
 
        adapter->ahw->reset_context = 0;
+       netif_tx_start_all_queues(netdev);
        return 0;
 }
 
@@ -2704,14 +2706,8 @@ static int qlcnic_open(struct net_device *netdev)
 
        err = __qlcnic_up(adapter, netdev);
        if (err)
-               goto err_out;
-
-       netif_tx_start_all_queues(netdev);
-
-       return 0;
+               qlcnic_detach(adapter);
 
-err_out:
-       qlcnic_detach(adapter);
        return err;
 }
 
@@ -3868,7 +3864,7 @@ int qlcnic_validate_rings(struct qlcnic_adapter *adapter, __u32 ring_cnt,
                strcpy(buf, "Tx");
        }
 
-       if (!qlcnic_use_msi_x && !qlcnic_use_msi) {
+       if (!QLCNIC_IS_MSI_FAMILY(adapter)) {
                netdev_err(netdev, "No RSS/TSS support in INT-x mode\n");
                return -EINVAL;
        }