Commit 014269ff authored by Neerav Parikh's avatar Neerav Parikh Committed by Jeff Kirsher

i40e: Don't stop driver probe when querying DCB config fails

In case of any AQ command to query port's DCB configuration fails
during driver's probe time; the probe fails and returns an error.

This patch prevents this issue by continuing the driver probe even
when an error is returned.

Also, added an error message to dump the AQ error status to show what
error caused the failure to get the DCB configuration from firmware.

Change-ID: Ifd5663512588bca684069bb7d4fb586dd72221af
Signed-off-by: default avatarNeerav Parikh <Neerav.Parikh@intel.com>
Signed-off-by: default avatarCatherine Sullivan <catherine.sullivan@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 0672a091
...@@ -4068,6 +4068,9 @@ static int i40e_init_pf_dcb(struct i40e_pf *pf) ...@@ -4068,6 +4068,9 @@ static int i40e_init_pf_dcb(struct i40e_pf *pf)
DCB_CAP_DCBX_VER_IEEE; DCB_CAP_DCBX_VER_IEEE;
pf->flags |= I40E_FLAG_DCB_ENABLED; pf->flags |= I40E_FLAG_DCB_ENABLED;
} }
} else {
dev_info(&pf->pdev->dev, "AQ Querying DCB configuration failed: %d\n",
pf->hw.aq.asq_last_status);
} }
out: out:
...@@ -8300,7 +8303,7 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -8300,7 +8303,7 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (err) { if (err) {
dev_info(&pdev->dev, "init_pf_dcb failed: %d\n", err); dev_info(&pdev->dev, "init_pf_dcb failed: %d\n", err);
pf->flags &= ~I40E_FLAG_DCB_ENABLED; pf->flags &= ~I40E_FLAG_DCB_ENABLED;
goto err_init_dcb; /* Continue without DCB enabled */
} }
#endif /* CONFIG_I40E_DCB */ #endif /* CONFIG_I40E_DCB */
...@@ -8438,9 +8441,6 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -8438,9 +8441,6 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
err_switch_setup: err_switch_setup:
i40e_reset_interrupt_capability(pf); i40e_reset_interrupt_capability(pf);
del_timer_sync(&pf->service_timer); del_timer_sync(&pf->service_timer);
#ifdef CONFIG_I40E_DCB
err_init_dcb:
#endif /* CONFIG_I40E_DCB */
err_mac_addr: err_mac_addr:
err_configure_lan_hmc: err_configure_lan_hmc:
(void)i40e_shutdown_lan_hmc(hw); (void)i40e_shutdown_lan_hmc(hw);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment