Browse Source

bnxt_en: Perform function reset earlier during probe.

The firmware call to do function reset is done too late.  It is causing
the rings that have been reserved to be freed.  In NPAR mode, this bug
is causing us to run out of rings.

Fixes: 391be5c27364 ("bnxt_en: Implement new scheme to reserve tx rings.")
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Michael Chan 8 years ago
parent
commit
3c2217a675
1 changed files with 4 additions and 4 deletions
  1. 4 4
      drivers/net/ethernet/broadcom/bnxt/bnxt.c

+ 4 - 4
drivers/net/ethernet/broadcom/bnxt/bnxt.c

@@ -7444,6 +7444,10 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (rc)
 	if (rc)
 		goto init_err_pci_clean;
 		goto init_err_pci_clean;
 
 
+	rc = bnxt_hwrm_func_reset(bp);
+	if (rc)
+		goto init_err_pci_clean;
+
 	bnxt_hwrm_fw_set_time(bp);
 	bnxt_hwrm_fw_set_time(bp);
 
 
 	dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_SG |
 	dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_SG |
@@ -7554,10 +7558,6 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (rc)
 	if (rc)
 		goto init_err_pci_clean;
 		goto init_err_pci_clean;
 
 
-	rc = bnxt_hwrm_func_reset(bp);
-	if (rc)
-		goto init_err_pci_clean;
-
 	rc = bnxt_init_int_mode(bp);
 	rc = bnxt_init_int_mode(bp);
 	if (rc)
 	if (rc)
 		goto init_err_pci_clean;
 		goto init_err_pci_clean;