diff options
author | Vladislav Zolotarov <vladz@broadcom.com> | 2010-11-24 14:09:50 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-11-24 14:09:50 -0500 |
commit | b340007f79941297c44a7dfba4d3c587ff81590f (patch) | |
tree | 631a382e90f4704b0edce3d6de8984b6e6374cd9 /drivers/net/bnx2x | |
parent | e1210d127d11fc40d229648c9754aa60776ef796 (diff) |
bnx2x: Do interrupt mode initialization and NAPIs adding before register_netdev()
Move the interrupt mode configuration and NAPIs adding before a
register_netdev() call to prevent netdev->open() from running
before these functions are done.
Advance a driver version number.
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Reported-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2x')
-rw-r--r-- | drivers/net/bnx2x/bnx2x.h | 4 | ||||
-rw-r--r-- | drivers/net/bnx2x/bnx2x_main.c | 12 |
2 files changed, 8 insertions, 8 deletions
diff --git a/drivers/net/bnx2x/bnx2x.h b/drivers/net/bnx2x/bnx2x.h index 863e73a85fbe..342ab58b14b3 100644 --- a/drivers/net/bnx2x/bnx2x.h +++ b/drivers/net/bnx2x/bnx2x.h | |||
@@ -20,8 +20,8 @@ | |||
20 | * (you will need to reboot afterwards) */ | 20 | * (you will need to reboot afterwards) */ |
21 | /* #define BNX2X_STOP_ON_ERROR */ | 21 | /* #define BNX2X_STOP_ON_ERROR */ |
22 | 22 | ||
23 | #define DRV_MODULE_VERSION "1.60.00-4" | 23 | #define DRV_MODULE_VERSION "1.60.00-5" |
24 | #define DRV_MODULE_RELDATE "2010/11/01" | 24 | #define DRV_MODULE_RELDATE "2010/11/24" |
25 | #define BNX2X_BC_VER 0x040200 | 25 | #define BNX2X_BC_VER 0x040200 |
26 | 26 | ||
27 | #define BNX2X_MULTI_QUEUE | 27 | #define BNX2X_MULTI_QUEUE |
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c index 92057d7058da..f53edfd011bf 100644 --- a/drivers/net/bnx2x/bnx2x_main.c +++ b/drivers/net/bnx2x/bnx2x_main.c | |||
@@ -9096,12 +9096,6 @@ static int __devinit bnx2x_init_one(struct pci_dev *pdev, | |||
9096 | /* calc qm_cid_count */ | 9096 | /* calc qm_cid_count */ |
9097 | bp->qm_cid_count = bnx2x_set_qm_cid_count(bp, cid_count); | 9097 | bp->qm_cid_count = bnx2x_set_qm_cid_count(bp, cid_count); |
9098 | 9098 | ||
9099 | rc = register_netdev(dev); | ||
9100 | if (rc) { | ||
9101 | dev_err(&pdev->dev, "Cannot register net device\n"); | ||
9102 | goto init_one_exit; | ||
9103 | } | ||
9104 | |||
9105 | /* Configure interupt mode: try to enable MSI-X/MSI if | 9099 | /* Configure interupt mode: try to enable MSI-X/MSI if |
9106 | * needed, set bp->num_queues appropriately. | 9100 | * needed, set bp->num_queues appropriately. |
9107 | */ | 9101 | */ |
@@ -9110,6 +9104,12 @@ static int __devinit bnx2x_init_one(struct pci_dev *pdev, | |||
9110 | /* Add all NAPI objects */ | 9104 | /* Add all NAPI objects */ |
9111 | bnx2x_add_all_napi(bp); | 9105 | bnx2x_add_all_napi(bp); |
9112 | 9106 | ||
9107 | rc = register_netdev(dev); | ||
9108 | if (rc) { | ||
9109 | dev_err(&pdev->dev, "Cannot register net device\n"); | ||
9110 | goto init_one_exit; | ||
9111 | } | ||
9112 | |||
9113 | bnx2x_get_pcie_width_speed(bp, &pcie_width, &pcie_speed); | 9113 | bnx2x_get_pcie_width_speed(bp, &pcie_width, &pcie_speed); |
9114 | 9114 | ||
9115 | netdev_info(dev, "%s (%c%d) PCI-E x%d %s found at mem %lx," | 9115 | netdev_info(dev, "%s (%c%d) PCI-E x%d %s found at mem %lx," |