On Thu, Jun 09, 2022 at 10:32:18AM +0800, Cheng Xu wrote: > > > 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. Thanks! I am pretty sure it will trigger a KMEMsan warning at runtime once someone upgrae sysbot to test RDMA. Another idea would be to initialize resp0 at the top of the function. Soon the compiler will start initializing to zero anyway so doing it manually is a zero cost approach. regards, dan carpenter