IB/hfi1: Fix incorrect mixing of ERR_PTR and NULL return values
authorMichael J. Ruhl <michael.j.ruhl@intel.com>
Wed, 20 Jun 2018 16:29:08 +0000 (09:29 -0700)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 26 Jun 2018 20:35:55 +0000 (14:35 -0600)
commitb697d7d8c741f27b728a878fc55852b06d0f6f5e
tree5d845e268d008f9a830180ad5b6ba244c149258d
parent4fae7f170416f970e5655f7e945ce69286b1c4ff
IB/hfi1: Fix incorrect mixing of ERR_PTR and NULL return values

The __get_txreq() function can return a pointer, ERR_PTR(-EBUSY), or NULL.
All of the relevant call sites look for IS_ERR, so the NULL return would
lead to a NULL pointer exception.

Do not use the ERR_PTR mechanism for this function.

Update all call sites to handle the return value correctly.

Clean up error paths to reflect return value.

Fixes: 45842abbb292 ("staging/rdma/hfi1: move txreq header code")
Cc: <stable@vger.kernel.org> # 4.9.x+
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Reviewed-by: Kamenee Arumugam <kamenee.arumugam@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/hfi1/rc.c
drivers/infiniband/hw/hfi1/uc.c
drivers/infiniband/hw/hfi1/ud.c
drivers/infiniband/hw/hfi1/verbs_txreq.c
drivers/infiniband/hw/hfi1/verbs_txreq.h