diff options
author | Rajesh Borundia <rajesh.borundia@qlogic.com> | 2014-08-04 11:51:17 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-08-05 19:23:26 -0400 |
commit | bf63014f108aaff49e4382b7adc7d0a2b6365744 (patch) | |
tree | 0744c8ac82eb3e415cde847308f68fe17b66ee2e | |
parent | a0eaf75c03712b491b7a840b5836c8f1e2a09277 (diff) |
qlcnic: Set driver version before registering netdev
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>
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c index 304e247bdf33..ffbae293cef5 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | |||
@@ -136,7 +136,7 @@ int qlcnic_82xx_issue_cmd(struct qlcnic_adapter *adapter, | |||
136 | rsp = qlcnic_poll_rsp(adapter); | 136 | rsp = qlcnic_poll_rsp(adapter); |
137 | 137 | ||
138 | if (rsp == QLCNIC_CDRP_RSP_TIMEOUT) { | 138 | if (rsp == QLCNIC_CDRP_RSP_TIMEOUT) { |
139 | dev_err(&pdev->dev, "card response timeout.\n"); | 139 | dev_err(&pdev->dev, "command timeout, response = 0x%x\n", rsp); |
140 | cmd->rsp.arg[0] = QLCNIC_RCODE_TIMEOUT; | 140 | cmd->rsp.arg[0] = QLCNIC_RCODE_TIMEOUT; |
141 | } else if (rsp == QLCNIC_CDRP_RSP_FAIL) { | 141 | } else if (rsp == QLCNIC_CDRP_RSP_FAIL) { |
142 | cmd->rsp.arg[0] = QLCRD32(adapter, QLCNIC_CDRP_ARG(1), &err); | 142 | cmd->rsp.arg[0] = QLCRD32(adapter, QLCNIC_CDRP_ARG(1), &err); |
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c index 4fc186713b66..158e1d9f255f 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | |||
@@ -2623,13 +2623,13 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2623 | if (err) | 2623 | if (err) |
2624 | goto err_out_disable_mbx_intr; | 2624 | goto err_out_disable_mbx_intr; |
2625 | 2625 | ||
2626 | if (adapter->portnum == 0) | ||
2627 | qlcnic_set_drv_version(adapter); | ||
2628 | |||
2626 | err = qlcnic_setup_netdev(adapter, netdev, pci_using_dac); | 2629 | err = qlcnic_setup_netdev(adapter, netdev, pci_using_dac); |
2627 | if (err) | 2630 | if (err) |
2628 | goto err_out_disable_mbx_intr; | 2631 | goto err_out_disable_mbx_intr; |
2629 | 2632 | ||
2630 | if (adapter->portnum == 0) | ||
2631 | qlcnic_set_drv_version(adapter); | ||
2632 | |||
2633 | pci_set_drvdata(pdev, adapter); | 2633 | pci_set_drvdata(pdev, adapter); |
2634 | 2634 | ||
2635 | if (qlcnic_82xx_check(adapter)) | 2635 | if (qlcnic_82xx_check(adapter)) |