Re: [bug report] RDMA/erdma: Add verbs implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 6/8/22 8:56 PM, Dan Carpenter wrote:
Hello Cheng Xu,

The patch c4612e83c14b: "RDMA/erdma: Add verbs implementation" from
May 23, 2022, leads to the following Smatch static checker warning:

	drivers/infiniband/hw/erdma/erdma_verbs.c:111 create_qp_cmd()
	error: uninitialized symbol 'resp0'.

drivers/infiniband/hw/erdma/erdma_verbs.c
     100                 req.sq_buf_addr = user_qp->sq_mtt.mtt_entry[0];
     101                 req.rq_buf_addr = user_qp->rq_mtt.mtt_entry[0];
     102
     103                 req.sq_db_info_dma_addr = user_qp->sq_db_info_dma_addr;
     104                 req.rq_db_info_dma_addr = user_qp->rq_db_info_dma_addr;
     105         }
     106
     107         err = erdma_post_cmd_wait(&dev->cmdq, (u64 *)&req, sizeof(req), &resp0,
     108                                   &resp1);

The erdma_post_cmd_wait() function does not initialize erdma_post_cmd_wait()
on the error paths.

Oh, I knew this before: since erdma_post_cmd_wait returns error, the qp
's resource will destroy soon, the uninitialized value of resp0 will
influence nothing. So here I reduce a condition judgement.

Anyway, I will fix it to eliminate the static checker warning.


Also it returns comp_wait->comp_status which is a u8.  I guess that's
some kind of custom error code.  Mixing kernel and custom error codes
is dangerous.  I think it's a bug in this case.


I will fix it in the next version of our patches.

Thanks,
Cheng Xu





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux