diff mbox

RDMA/nes: checking for NULL instead of IS_ERR

Message ID 20160112092743.GA29804@mwanda (mailing list archive)
State Accepted
Headers show

Commit Message

Dan Carpenter Jan. 12, 2016, 9:27 a.m. UTC
nes_reg_phys_mr() returns ERR_PTRs on error.  It doesn't return NULL.

This bug has been there for a while, but we recently changed from
calling a function pointer to calling nes_reg_phys_mr() directly so now
Smatch is able to detect the bug.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

--
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

Christoph Hellwig Jan. 12, 2016, 3:12 p.m. UTC | #1
On Tue, Jan 12, 2016 at 12:27:43PM +0300, Dan Carpenter wrote:
> nes_reg_phys_mr() returns ERR_PTRs on error.  It doesn't return NULL.
> 
> This bug has been there for a while, but we recently changed from
> calling a function pointer to calling nes_reg_phys_mr() directly so now
> Smatch is able to detect the bug.

Looks fine,

Reviewed-by: Christoph Hellwig <hch@lst.de>
--
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
Doug Ledford Jan. 19, 2016, 8:59 p.m. UTC | #2
On 01/12/2016 10:12 AM, Christoph Hellwig wrote:
> On Tue, Jan 12, 2016 at 12:27:43PM +0300, Dan Carpenter wrote:
>> nes_reg_phys_mr() returns ERR_PTRs on error.  It doesn't return NULL.
>>
>> This bug has been there for a while, but we recently changed from
>> calling a function pointer to calling nes_reg_phys_mr() directly so now
>> Smatch is able to detect the bug.
> 
> Looks fine,
> 
> Reviewed-by: Christoph Hellwig <hch@lst.de>
> 

Thanks, applied.
diff mbox

Patch

diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index 179490d..cb9f0f2 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -3320,14 +3320,14 @@  int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
 				nesqp->ietf_frame_pbase + mpa_frame_offset,
 				buff_len, IB_ACCESS_LOCAL_WRITE,
 				&tagged_offset);
-		if (!ibmr) {
+		if (IS_ERR(ibmr)) {
 			nes_debug(NES_DBG_CM, "Unable to register memory region"
 				  "for lSMM for cm_node = %p \n",
 				  cm_node);
 			pci_free_consistent(nesdev->pcidev,
 					    nesqp->private_data_len + nesqp->ietf_frame_size,
 					    nesqp->ietf_frame, nesqp->ietf_frame_pbase);
-			return -ENOMEM;
+			return PTR_ERR(ibmr);
 		}
 
 		ibmr->pd = &nespd->ibpd;