diff mbox series

RDMA/rxe: check for error

Message ID 20200423104813.20484-1-sudipm.mukherjee@gmail.com (mailing list archive)
State Superseded
Delegated to: Jason Gunthorpe
Headers show
Series RDMA/rxe: check for error | expand

Commit Message

Sudip Mukherjee April 23, 2020, 10:48 a.m. UTC
rxe_create_mmap_info() returns either NULL or an error value in ERR_PTR
and we only checked for NULL after return. We should be using
IS_ERR_OR_NULL to check for both.

Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
---
 drivers/infiniband/sw/rxe/rxe_queue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Zhu Yanjun April 24, 2020, 1:17 a.m. UTC | #1
Thanks,
Reviewed-by: Zhu Yanjun <yanjunz@mellanox.com>

-----Original Message-----
From: Sudip Mukherjee <sudipm.mukherjee@gmail.com> 
Sent: Thursday, April 23, 2020 6:48 PM
To: Yanjun Zhu <yanjunz@mellanox.com>; Doug Ledford <dledford@redhat.com>; Jason Gunthorpe <jgg@ziepe.ca>
Cc: linux-kernel@vger.kernel.org; linux-rdma@vger.kernel.org; Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Subject: [PATCH] RDMA/rxe: check for error

rxe_create_mmap_info() returns either NULL or an error value in ERR_PTR and we only checked for NULL after return. We should be using IS_ERR_OR_NULL to check for both.

Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
---
 drivers/infiniband/sw/rxe/rxe_queue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/sw/rxe/rxe_queue.c b/drivers/infiniband/sw/rxe/rxe_queue.c
index ff92704de32f..ef438ce4fcfa 100644
--- a/drivers/infiniband/sw/rxe/rxe_queue.c
+++ b/drivers/infiniband/sw/rxe/rxe_queue.c
@@ -45,7 +45,7 @@ int do_mmap_info(struct rxe_dev *rxe, struct mminfo __user *outbuf,
 
 	if (outbuf) {
 		ip = rxe_create_mmap_info(rxe, buf_size, udata, buf);
-		if (!ip)
+		if (IS_ERR_OR_NULL(ip))
 			goto err1;
 
 		err = copy_to_user(outbuf, &ip->info, sizeof(ip->info));
--
2.11.0
Jason Gunthorpe April 24, 2020, 6:30 p.m. UTC | #2
On Thu, Apr 23, 2020 at 11:48:13AM +0100, Sudip Mukherjee wrote:
> rxe_create_mmap_info() returns either NULL or an error value in ERR_PTR
> and we only checked for NULL after return. We should be using
> IS_ERR_OR_NULL to check for both.
> 
> Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
>  drivers/infiniband/sw/rxe/rxe_queue.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/infiniband/sw/rxe/rxe_queue.c b/drivers/infiniband/sw/rxe/rxe_queue.c
> index ff92704de32f..ef438ce4fcfa 100644
> +++ b/drivers/infiniband/sw/rxe/rxe_queue.c
> @@ -45,7 +45,7 @@ int do_mmap_info(struct rxe_dev *rxe, struct mminfo __user *outbuf,
>  
>  	if (outbuf) {
>  		ip = rxe_create_mmap_info(rxe, buf_size, udata, buf);
> -		if (!ip)
> +		if (IS_ERR_OR_NULL(ip))
>  			goto err1;

Same comment as for the rvt patch - do not use IS_ERR_OR_NULL. If a
function uses the ERR_PTR stuff then it should not return NULL. Fix
rxe_create_mmap_info and check all call sites

Jason
diff mbox series

Patch

diff --git a/drivers/infiniband/sw/rxe/rxe_queue.c b/drivers/infiniband/sw/rxe/rxe_queue.c
index ff92704de32f..ef438ce4fcfa 100644
--- a/drivers/infiniband/sw/rxe/rxe_queue.c
+++ b/drivers/infiniband/sw/rxe/rxe_queue.c
@@ -45,7 +45,7 @@  int do_mmap_info(struct rxe_dev *rxe, struct mminfo __user *outbuf,
 
 	if (outbuf) {
 		ip = rxe_create_mmap_info(rxe, buf_size, udata, buf);
-		if (!ip)
+		if (IS_ERR_OR_NULL(ip))
 			goto err1;
 
 		err = copy_to_user(outbuf, &ip->info, sizeof(ip->info));