Эх сурвалжийг харах

RDMA/bnxt_re: Prevent driver crash due to NULL pointer in error message print

crsqe->resp would be NULL in case the host command timed out before
getting a response from HW. Check for NULL pointer to avoid a potential
crash while printing the error message.

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Somnath Kotur 6 жил өмнө
parent
commit
bb22c36cba

+ 6 - 4
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c

@@ -333,10 +333,12 @@ static int bnxt_qplib_process_qp_event(struct bnxt_qplib_rcfw *rcfw,
 			memcpy(crsqe->resp, qp_event, sizeof(*qp_event));
 			memcpy(crsqe->resp, qp_event, sizeof(*qp_event));
 			crsqe->resp = NULL;
 			crsqe->resp = NULL;
 		} else {
 		} else {
-			dev_err(&rcfw->pdev->dev,
-				"CMD %s resp->cookie = %#x, evnt->cookie = %#x\n",
-				crsqe->resp ? "mismatch" : "collision",
-				crsqe->resp ? crsqe->resp->cookie : 0, mcookie);
+			if (crsqe->resp && crsqe->resp->cookie)
+				dev_err(&rcfw->pdev->dev,
+					"CMD %s cookie sent=%#x, recd=%#x\n",
+					crsqe->resp ? "mismatch" : "collision",
+					crsqe->resp ? crsqe->resp->cookie : 0,
+					mcookie);
 		}
 		}
 		if (!test_and_clear_bit(cbit, rcfw->cmdq_bitmap))
 		if (!test_and_clear_bit(cbit, rcfw->cmdq_bitmap))
 			dev_warn(&rcfw->pdev->dev,
 			dev_warn(&rcfw->pdev->dev,