RDMA/nes: checking for NULL instead of IS_ERR
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 12 Jan 2016 09:27:43 +0000 (12:27 +0300)
committerDoug Ledford <dledford@redhat.com>
Tue, 19 Jan 2016 20:17:40 +0000 (15:17 -0500)
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>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/nes/nes_cm.c

index 179490d74bfd50fddafeaca1204d6fc7939ccf60..cb9f0f27308de0dd439844cc06742a74caa52899 100644 (file)
@@ -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;