Message ID | 20200615073225.24061-4-refactormyself@gmail.com |
---|---|
State | New |
Headers | show |
Series | PCI: Align return values of PCIe capability and PCI accessors | expand |
On 6/15/2020 3:32 AM, refactormyself@gmail.com wrote: > From: Bolarinwa Olayemi Saheed <refactormyself@gmail.com> > > restore_pci_variables() and save_pci_variables() return 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. > > Fix redundant initialisation. > > Suggested-by: Bjorn Helgaas <bjorn@helgaas.com> > Signed-off-by: Bolarinwa Olayemi Saheed <refactormyself@gmail.com> Looks like we may have had a problem when calling pci_read_config_dword() from the init dd path and doing a check for < 0 to bail. So this looks like goodness to me. Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
diff --git a/drivers/infiniband/hw/hfi1/pcie.c b/drivers/infiniband/hw/hfi1/pcie.c index 1a6268d61977..2a45f34ac6c8 100644 --- a/drivers/infiniband/hw/hfi1/pcie.c +++ b/drivers/infiniband/hw/hfi1/pcie.c @@ -334,10 +334,14 @@ int pcie_speeds(struct hfi1_devdata *dd) 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 ret = 0; + int ret; ret = pci_write_config_word(dd->pcidev, PCI_COMMAND, dd->pci_command); if (ret) @@ -386,13 +390,17 @@ int restore_pci_variables(struct hfi1_devdata *dd) error: 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 ret = 0; + int ret; ret = pci_read_config_dword(dd->pcidev, PCI_BASE_ADDRESS_0, &dd->pcibar0); @@ -441,7 +449,7 @@ int save_pci_variables(struct hfi1_devdata *dd) error: dd_dev_err(dd, "Unable to read from PCI config\n"); - return ret; + return pcibios_err_to_errno(ret); } /*