RDMA/bnxt_re: Prevent driver crash due to NULL pointer in error message print
authorSomnath Kotur <somnath.kotur@broadcom.com>
Mon, 8 Oct 2018 10:27:58 +0000 (03:27 -0700)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 16 Oct 2018 06:03:50 +0000 (00:03 -0600)
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>
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c

index a3d9447..be4e33e 100644 (file)
@@ -333,10 +333,12 @@ static int bnxt_qplib_process_qp_event(struct bnxt_qplib_rcfw *rcfw,
                        memcpy(crsqe->resp, qp_event, sizeof(*qp_event));
                        crsqe->resp = NULL;
                } 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))
                        dev_warn(&rcfw->pdev->dev,