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.com Suggested-by: Bjorn Helgaas <bjorn@helgaas.com> Signed-off-by: Bolarinwa Olayemi Saheed <refactormyself@gmail.com> Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
14c2b89634
commit
c4334a99d3
|
@ -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)
|
||||||
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)
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue