Hello Dan, Thanks for reporting these issues, We will get back with a patch to fix this issue. -Regards Devesh On Thu, Sep 28, 2017 at 4:12 PM, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > Hello Selvin Xavier, > > The patch 1ac5a4047975: "RDMA/bnxt_re: Add bnxt_re RoCE driver" from > Feb 10, 2017, leads to the following static checker warning: > > drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:95 __send_message() warn: test_bit() takes a bit number > drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:104 __send_message() warn: test_bit() takes a bit number > drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:110 __send_message() warn: test_bit() takes a bit number > drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:232 bnxt_qplib_rcfw_send_message() warn: test_bit() takes a bit number > drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:430 bnxt_qplib_deinit_rcfw() warn: test_bit() takes a bit number > drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:524 bnxt_qplib_init_rcfw() warn: test_bit() takes a bit number > > > drivers/infiniband/hw/bnxt_re/qplib_rcfw.h > 164 unsigned long flags; > 165 #define FIRMWARE_INITIALIZED_FLAG BIT(0) > 166 #define FIRMWARE_FIRST_FLAG BIT(31) > 167 #define FIRMWARE_TIMED_OUT BIT(3) > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > Defined here. > > 168 wait_queue_head_t waitq; > > drivers/infiniband/hw/bnxt_re/qplib_rcfw.c > 81 static int __send_message(struct bnxt_qplib_rcfw *rcfw, struct cmdq_base *req, > 82 struct creq_base *resp, void *sb, u8 is_block) > 83 { > 84 struct bnxt_qplib_cmdqe *cmdqe, **cmdq_ptr; > 85 struct bnxt_qplib_hwq *cmdq = &rcfw->cmdq; > 86 struct bnxt_qplib_crsq *crsqe; > 87 u32 sw_prod, cmdq_prod; > 88 unsigned long flags; > 89 u32 size, opcode; > 90 u16 cookie, cbit; > 91 int pg, idx; > 92 u8 *preq; > 93 > 94 opcode = req->opcode; > 95 if (!test_bit(FIRMWARE_INITIALIZED_FLAG, &rcfw->flags) && > ^^^^^^^^^^^^^^^^^^^^^^^^^ > We're actually testing "1 << BIT(0)" here. Which is fine because we > do it consistently and because it happens to not overlap with any of the > other flags and because we don't use "test_bit(FIRMWARE_FIRST_FLAG ...". > But it's not the right way to use this function. > > 96 (opcode != CMDQ_BASE_OPCODE_QUERY_FUNC && > 97 opcode != CMDQ_BASE_OPCODE_INITIALIZE_FW)) { > 98 dev_err(&rcfw->pdev->dev, > 99 "QPLIB: RCFW not initialized, reject opcode 0x%x", > 100 opcode); > 101 return -EINVAL; > 102 } > > regards, > dan carpenter > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html