[3/8] PCI: Convert PCIBIOS_ error codes to non-PCI generic error codes
diff mbox series

Message ID 20200609153950.8346-4-refactormyself@gmail.com
State Superseded
Headers show
Series
  • PCI: Align return value of pcie capability accessors with other accessors
Related show

Commit Message

Saheed Bolarinwa June 9, 2020, 3:39 p.m. UTC
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 return value of pcie capability accessors, call
pcibios_err_to_errno() to convert any positive PCIBIOS_ error codes to
negative non-PCI generic error values.

Signed-off-by: Bolarinwa Olayemi Saheed <refactormyself@gmail.com>
Suggested-by: Bjorn Helgaas <bjorn@helgaas.com>
---
 drivers/infiniband/hw/hfi1/pcie.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

Comments

Bjorn Helgaas June 11, 2020, 10:24 p.m. UTC | #1
On Tue, Jun 09, 2020 at 05:39:45PM +0200, 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 return value of pcie capability accessors, call
> pcibios_err_to_errno() to convert any positive PCIBIOS_ error codes to
> negative non-PCI generic error values.
> 
> Signed-off-by: Bolarinwa Olayemi Saheed <refactormyself@gmail.com>
> Suggested-by: Bjorn Helgaas <bjorn@helgaas.com>
> ---
>  drivers/infiniband/hw/hfi1/pcie.c | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/hfi1/pcie.c b/drivers/infiniband/hw/hfi1/pcie.c
> index eb53781d0c6a..eb2790e9db36 100644
> --- a/drivers/infiniband/hw/hfi1/pcie.c
> +++ b/drivers/infiniband/hw/hfi1/pcie.c
> @@ -334,7 +334,11 @@ 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;

These initializations are obviously superfluous.  Generally
I wouldn't encourage mixing fixes into a single patch, but
removing the initialization and adding pcibios_err_to_errno()
are both so trivial that I think it would be OK here.

Also, I didn't notice before, but these driver patches need to be cc'd
to the driver maintainers.  In this case, get_maintainers.pl says:

  Mike Marciniszyn <mike.marciniszyn@intel.com> (supporter:HFI1 DRIVER)
  Dennis Dalessandro <dennis.dalessandro@intel.com> (supporter:HFI1 DRIVER)
  Doug Ledford <dledford@redhat.com> (supporter:INFINIBAND SUBSYSTEM)
  Jason Gunthorpe <jgg@ziepe.ca> (supporter:INFINIBAND SUBSYSTEM)
  linux-rdma@vger.kernel.org (open list:HFI1 DRIVER)
  linux-kernel@vger.kernel.org (open list)

I would also cc *all* the driver maintainers for all the patches on
the cover letter and add a note about how we might merge these.
They're all independent, so they *could* go individually via the
separate driver trees, but I think it might make sense to merge them
all together via the PCI tree just so the collection of similar fixes
is merged all at once.

> @@ -386,10 +390,14 @@ 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;
> @@ -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);
>  }
>  
>  /*
> -- 
> 2.18.2
>

Patch
diff mbox series

diff --git a/drivers/infiniband/hw/hfi1/pcie.c b/drivers/infiniband/hw/hfi1/pcie.c
index eb53781d0c6a..eb2790e9db36 100644
--- a/drivers/infiniband/hw/hfi1/pcie.c
+++ b/drivers/infiniband/hw/hfi1/pcie.c
@@ -334,7 +334,11 @@  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;
@@ -386,10 +390,14 @@  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;
@@ -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);
 }
 
 /*