diff mbox

[V2] IB/qib: fix test of unsigned variable

Message ID 20150512163233.26836.98544.stgit@phlsvslse11.ph.intel.com (mailing list archive)
State Changes Requested
Headers show

Commit Message

Marciniszyn, Mike May 12, 2015, 4:32 p.m. UTC
Commit d4988623cc60 ("IB/qib: use arch_phys_wc_add()")
adjusted mtrr inititialization to use the new interface.

Unfortunately, the new interface returns a signed
value and the patch tested the unsigned wc_cookie.

Fix the issue by changing the type of wc_cookie to int.  For
the success case the ret is changed to zero to avoid
a warning from the caller.  For failure wc_cookie
is used as the ret.

Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
---
 drivers/infiniband/hw/qib/qib.h           |    2 +-
 drivers/infiniband/hw/qib/qib_wc_x86_64.c |    8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Doug Ledford May 12, 2015, 4:45 p.m. UTC | #1
On Tue, 2015-05-12 at 12:32 -0400, Mike Marciniszyn wrote:
> Commit d4988623cc60 ("IB/qib: use arch_phys_wc_add()")
> adjusted mtrr inititialization to use the new interface.
> 
> Unfortunately, the new interface returns a signed
> value and the patch tested the unsigned wc_cookie.
> 
> Fix the issue by changing the type of wc_cookie to int.  For
> the success case the ret is changed to zero to avoid
> a warning from the caller.  For failure wc_cookie
> is used as the ret.
> 
> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
> ---
>  drivers/infiniband/hw/qib/qib.h           |    2 +-
>  drivers/infiniband/hw/qib/qib_wc_x86_64.c |    8 ++++++--
>  2 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/qib/qib.h b/drivers/infiniband/hw/qib/qib.h
> index ba5173e2..7df16f7 100644
> --- a/drivers/infiniband/hw/qib/qib.h
> +++ b/drivers/infiniband/hw/qib/qib.h
> @@ -903,7 +903,7 @@ struct qib_devdata {
>  	/* PCI Device ID (here for NodeInfo) */
>  	u16 deviceid;
>  	/* for write combining settings */
> -	unsigned long wc_cookie;
> +	int wc_cookie;
>  	unsigned long wc_base;
>  	unsigned long wc_len;
>  
> diff --git a/drivers/infiniband/hw/qib/qib_wc_x86_64.c b/drivers/infiniband/hw/qib/qib_wc_x86_64.c
> index 6d61ef9..2f2e15a 100644
> --- a/drivers/infiniband/hw/qib/qib_wc_x86_64.c
> +++ b/drivers/infiniband/hw/qib/qib_wc_x86_64.c
> @@ -117,8 +117,12 @@ int qib_enable_wc(struct qib_devdata *dd)
>  
>  	if (!ret) {
>  		dd->wc_cookie = arch_phys_wc_add(pioaddr, piolen);
> -		if (dd->wc_cookie < 0)
> -			ret = -EINVAL;
> +		if (dd->wc_cookie >= 0)
> +			/* insure no warning on success */
> +			ret = 0;

This stanza has no meaning.  ret was already 0 or we wouldn't be in this
section, setting it again serves no purpose.  Just keep the original
code, but replace -EINVAL with dd->wc_cookie.

> +		else
> +			/* use error from routine */
> +			ret = dd->wc_cookie;
>  	}
>  
>  	return ret;
>
Marciniszyn, Mike May 12, 2015, 5:38 p.m. UTC | #2
PiBUaGlzIHN0YW56YSBoYXMgbm8gbWVhbmluZy4gIHJldCB3YXMgYWxyZWFkeSAwIG9yIHdlIHdv
dWxkbid0IGJlIGluIHRoaXMgc2VjdGlvbiwNCj4gc2V0dGluZyBpdCBhZ2FpbiBzZXJ2ZXMgbm8g
cHVycG9zZS4gIEp1c3Qga2VlcCB0aGUgb3JpZ2luYWwgY29kZSwgYnV0IHJlcGxhY2UgLQ0KPiBF
SU5WQUwgd2l0aCBkZC0+d2NfY29va2llLg0KPiANCg0KRHVoLg0KDQpWMyB3aWxsIGZpeC4NCg0K
TWlrZQ0K
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/infiniband/hw/qib/qib.h b/drivers/infiniband/hw/qib/qib.h
index ba5173e2..7df16f7 100644
--- a/drivers/infiniband/hw/qib/qib.h
+++ b/drivers/infiniband/hw/qib/qib.h
@@ -903,7 +903,7 @@  struct qib_devdata {
 	/* PCI Device ID (here for NodeInfo) */
 	u16 deviceid;
 	/* for write combining settings */
-	unsigned long wc_cookie;
+	int wc_cookie;
 	unsigned long wc_base;
 	unsigned long wc_len;
 
diff --git a/drivers/infiniband/hw/qib/qib_wc_x86_64.c b/drivers/infiniband/hw/qib/qib_wc_x86_64.c
index 6d61ef9..2f2e15a 100644
--- a/drivers/infiniband/hw/qib/qib_wc_x86_64.c
+++ b/drivers/infiniband/hw/qib/qib_wc_x86_64.c
@@ -117,8 +117,12 @@  int qib_enable_wc(struct qib_devdata *dd)
 
 	if (!ret) {
 		dd->wc_cookie = arch_phys_wc_add(pioaddr, piolen);
-		if (dd->wc_cookie < 0)
-			ret = -EINVAL;
+		if (dd->wc_cookie >= 0)
+			/* insure no warning on success */
+			ret = 0;
+		else
+			/* use error from routine */
+			ret = dd->wc_cookie;
 	}
 
 	return ret;