qlcnic: Set driver version before registering netdev
authorRajesh Borundia <rajesh.borundia@qlogic.com>
Mon, 4 Aug 2014 15:51:17 +0000 (11:51 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 Aug 2014 23:23:26 +0000 (16:23 -0700)
o Earlier, set_drv_version was getting called after register_netdev.
  This was resulting in a race between set_drv_version and FLR called
  from open(). Moving set_drv_version before register_netdev avoids
  the race.

o Log response code in error message on CDRP failure.

Signed-off-by: Rajesh Borundia <rajesh.borundia@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c

index 304e247..ffbae29 100644 (file)
@@ -136,7 +136,7 @@ int qlcnic_82xx_issue_cmd(struct qlcnic_adapter *adapter,
        rsp = qlcnic_poll_rsp(adapter);
 
        if (rsp == QLCNIC_CDRP_RSP_TIMEOUT) {
-               dev_err(&pdev->dev, "card response timeout.\n");
+               dev_err(&pdev->dev, "command timeout, response = 0x%x\n", rsp);
                cmd->rsp.arg[0] = QLCNIC_RCODE_TIMEOUT;
        } else if (rsp == QLCNIC_CDRP_RSP_FAIL) {
                cmd->rsp.arg[0] = QLCRD32(adapter, QLCNIC_CDRP_ARG(1), &err);
index 4fc1867..158e1d9 100644 (file)
@@ -2623,13 +2623,13 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (err)
                goto err_out_disable_mbx_intr;
 
+       if (adapter->portnum == 0)
+               qlcnic_set_drv_version(adapter);
+
        err = qlcnic_setup_netdev(adapter, netdev, pci_using_dac);
        if (err)
                goto err_out_disable_mbx_intr;
 
-       if (adapter->portnum == 0)
-               qlcnic_set_drv_version(adapter);
-
        pci_set_drvdata(pdev, adapter);
 
        if (qlcnic_82xx_check(adapter))