Commit c4334a99 authored by Bolarinwa Olayemi Saheed's avatar Bolarinwa Olayemi Saheed Committed by Jason Gunthorpe

IB/hfi1: Convert PCIBIOS_* errors to generic -E* errors

pcie_speeds() and restore_pci_variables() returns PCIBIOS_ error codes
from PCIe capability accessors.

PCIBIOS_ error codes have positive values. Passing on these values is
inconsistent with functions which return only a negative value on failure.

Before passing on the return value of PCIe capability accessors, call
pcibios_err_to_errno() to convert any positive PCIBIOS_ error codes to
negative generic error values.

Link: https://lore.kernel.org/r/20200615073225.24061-3-refactormyself@gmail.comSuggested-by: default avatarBjorn Helgaas <bjorn@helgaas.com>
Signed-off-by: default avatarBolarinwa Olayemi Saheed <refactormyself@gmail.com>
Reviewed-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent 14c2b896
...@@ -306,7 +306,7 @@ int pcie_speeds(struct hfi1_devdata *dd) ...@@ -306,7 +306,7 @@ int pcie_speeds(struct hfi1_devdata *dd)
ret = pcie_capability_read_dword(dd->pcidev, PCI_EXP_LNKCAP, &linkcap); ret = pcie_capability_read_dword(dd->pcidev, PCI_EXP_LNKCAP, &linkcap);
if (ret) { if (ret) {
dd_dev_err(dd, "Unable to read from PCI config\n"); dd_dev_err(dd, "Unable to read from PCI config\n");
return ret; return pcibios_err_to_errno(ret);
} }
if ((linkcap & PCI_EXP_LNKCAP_SLS) != PCI_EXP_LNKCAP_SLS_8_0GB) { if ((linkcap & PCI_EXP_LNKCAP_SLS) != PCI_EXP_LNKCAP_SLS_8_0GB) {
...@@ -334,10 +334,14 @@ int pcie_speeds(struct hfi1_devdata *dd) ...@@ -334,10 +334,14 @@ int pcie_speeds(struct hfi1_devdata *dd)
return 0; return 0;
} }
/* restore command and BARs after a reset has wiped them out */ /**
* Restore command and BARs after a reset has wiped them out
*
* Returns 0 on success, otherwise a negative error value
*/
int restore_pci_variables(struct hfi1_devdata *dd) int restore_pci_variables(struct hfi1_devdata *dd)
{ {
int ret = 0; int ret;
ret = pci_write_config_word(dd->pcidev, PCI_COMMAND, dd->pci_command); ret = pci_write_config_word(dd->pcidev, PCI_COMMAND, dd->pci_command);
if (ret) if (ret)
...@@ -386,13 +390,17 @@ int restore_pci_variables(struct hfi1_devdata *dd) ...@@ -386,13 +390,17 @@ int restore_pci_variables(struct hfi1_devdata *dd)
error: error:
dd_dev_err(dd, "Unable to write to PCI config\n"); dd_dev_err(dd, "Unable to write to PCI config\n");
return ret; return pcibios_err_to_errno(ret);
} }
/* Save BARs and command to rewrite after device reset */ /**
* Save BARs and command to rewrite after device reset
*
* Returns 0 on success, otherwise a negative error value
*/
int save_pci_variables(struct hfi1_devdata *dd) int save_pci_variables(struct hfi1_devdata *dd)
{ {
int ret = 0; int ret;
ret = pci_read_config_dword(dd->pcidev, PCI_BASE_ADDRESS_0, ret = pci_read_config_dword(dd->pcidev, PCI_BASE_ADDRESS_0,
&dd->pcibar0); &dd->pcibar0);
...@@ -441,7 +449,7 @@ int save_pci_variables(struct hfi1_devdata *dd) ...@@ -441,7 +449,7 @@ int save_pci_variables(struct hfi1_devdata *dd)
error: error:
dd_dev_err(dd, "Unable to read from PCI config\n"); dd_dev_err(dd, "Unable to read from PCI config\n");
return ret; return pcibios_err_to_errno(ret);
} }
/* /*
......
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