[linux-next:master 5887/9096] drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:909:27: sparse: sparse: invalid assignment: |=

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

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   aa4db8324c4d0e67aa4670356df4e9fae14b4d37
commit: 07f830ae4913d0b986c8c0ff88a7d597948b9bd8 [5887/9096] RDMA/bnxt_re: Adds MSN table capability for Gen P7 adapters
config: x86_64-randconfig-121-20231220 (https://download.01.org/0day-ci/archive/20231220/202312200537.HoNqPL5L-lkp@xxxxxxxxx/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231220/202312200537.HoNqPL5L-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312200537.HoNqPL5L-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:909:27: sparse: sparse: invalid assignment: |=
>> drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:909:27: sparse:    left side has type restricted __le16
>> drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:909:27: sparse:    right side has type unsigned long
   drivers/infiniband/hw/bnxt_re/qplib_rcfw.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always evaluates to false
--
>> drivers/infiniband/hw/bnxt_re/qplib_fp.c:1620:44: sparse: sparse: invalid assignment: |=
>> drivers/infiniband/hw/bnxt_re/qplib_fp.c:1620:44: sparse:    left side has type restricted __le64
>> drivers/infiniband/hw/bnxt_re/qplib_fp.c:1620:44: sparse:    right side has type unsigned long long
   drivers/infiniband/hw/bnxt_re/qplib_fp.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/slab.h):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always evaluates to false

vim +909 drivers/infiniband/hw/bnxt_re/qplib_rcfw.c

   828	
   829	int bnxt_qplib_init_rcfw(struct bnxt_qplib_rcfw *rcfw,
   830				 struct bnxt_qplib_ctx *ctx, int is_virtfn)
   831	{
   832		struct creq_initialize_fw_resp resp = {};
   833		struct cmdq_initialize_fw req = {};
   834		struct bnxt_qplib_cmdqmsg msg = {};
   835		u8 pgsz, lvl;
   836		int rc;
   837	
   838		bnxt_qplib_rcfw_cmd_prep((struct cmdq_base *)&req,
   839					 CMDQ_BASE_OPCODE_INITIALIZE_FW,
   840					 sizeof(req));
   841		/* Supply (log-base-2-of-host-page-size - base-page-shift)
   842		 * to bono to adjust the doorbell page sizes.
   843		 */
   844		req.log2_dbr_pg_size = cpu_to_le16(PAGE_SHIFT -
   845						   RCFW_DBR_BASE_PAGE_SHIFT);
   846		/*
   847		 * Gen P5 devices doesn't require this allocation
   848		 * as the L2 driver does the same for RoCE also.
   849		 * Also, VFs need not setup the HW context area, PF
   850		 * shall setup this area for VF. Skipping the
   851		 * HW programming
   852		 */
   853		if (is_virtfn)
   854			goto skip_ctx_setup;
   855		if (bnxt_qplib_is_chip_gen_p5_p7(rcfw->res->cctx))
   856			goto config_vf_res;
   857	
   858		lvl = ctx->qpc_tbl.level;
   859		pgsz = bnxt_qplib_base_pg_size(&ctx->qpc_tbl);
   860		req.qpc_pg_size_qpc_lvl = (pgsz << CMDQ_INITIALIZE_FW_QPC_PG_SIZE_SFT) |
   861					   lvl;
   862		lvl = ctx->mrw_tbl.level;
   863		pgsz = bnxt_qplib_base_pg_size(&ctx->mrw_tbl);
   864		req.mrw_pg_size_mrw_lvl = (pgsz << CMDQ_INITIALIZE_FW_QPC_PG_SIZE_SFT) |
   865					   lvl;
   866		lvl = ctx->srqc_tbl.level;
   867		pgsz = bnxt_qplib_base_pg_size(&ctx->srqc_tbl);
   868		req.srq_pg_size_srq_lvl = (pgsz << CMDQ_INITIALIZE_FW_QPC_PG_SIZE_SFT) |
   869					   lvl;
   870		lvl = ctx->cq_tbl.level;
   871		pgsz = bnxt_qplib_base_pg_size(&ctx->cq_tbl);
   872		req.cq_pg_size_cq_lvl = (pgsz << CMDQ_INITIALIZE_FW_QPC_PG_SIZE_SFT) |
   873					 lvl;
   874		lvl = ctx->tim_tbl.level;
   875		pgsz = bnxt_qplib_base_pg_size(&ctx->tim_tbl);
   876		req.tim_pg_size_tim_lvl = (pgsz << CMDQ_INITIALIZE_FW_QPC_PG_SIZE_SFT) |
   877					   lvl;
   878		lvl = ctx->tqm_ctx.pde.level;
   879		pgsz = bnxt_qplib_base_pg_size(&ctx->tqm_ctx.pde);
   880		req.tqm_pg_size_tqm_lvl = (pgsz << CMDQ_INITIALIZE_FW_QPC_PG_SIZE_SFT) |
   881					   lvl;
   882		req.qpc_page_dir =
   883			cpu_to_le64(ctx->qpc_tbl.pbl[PBL_LVL_0].pg_map_arr[0]);
   884		req.mrw_page_dir =
   885			cpu_to_le64(ctx->mrw_tbl.pbl[PBL_LVL_0].pg_map_arr[0]);
   886		req.srq_page_dir =
   887			cpu_to_le64(ctx->srqc_tbl.pbl[PBL_LVL_0].pg_map_arr[0]);
   888		req.cq_page_dir =
   889			cpu_to_le64(ctx->cq_tbl.pbl[PBL_LVL_0].pg_map_arr[0]);
   890		req.tim_page_dir =
   891			cpu_to_le64(ctx->tim_tbl.pbl[PBL_LVL_0].pg_map_arr[0]);
   892		req.tqm_page_dir =
   893			cpu_to_le64(ctx->tqm_ctx.pde.pbl[PBL_LVL_0].pg_map_arr[0]);
   894	
   895		req.number_of_qp = cpu_to_le32(ctx->qpc_tbl.max_elements);
   896		req.number_of_mrw = cpu_to_le32(ctx->mrw_tbl.max_elements);
   897		req.number_of_srq = cpu_to_le32(ctx->srqc_tbl.max_elements);
   898		req.number_of_cq = cpu_to_le32(ctx->cq_tbl.max_elements);
   899	
   900	config_vf_res:
   901		req.max_qp_per_vf = cpu_to_le32(ctx->vf_res.max_qp_per_vf);
   902		req.max_mrw_per_vf = cpu_to_le32(ctx->vf_res.max_mrw_per_vf);
   903		req.max_srq_per_vf = cpu_to_le32(ctx->vf_res.max_srq_per_vf);
   904		req.max_cq_per_vf = cpu_to_le32(ctx->vf_res.max_cq_per_vf);
   905		req.max_gid_per_vf = cpu_to_le32(ctx->vf_res.max_gid_per_vf);
   906	
   907	skip_ctx_setup:
   908		if (BNXT_RE_HW_RETX(rcfw->res->dattr->dev_cap_flags))
 > 909			req.flags |= CMDQ_INITIALIZE_FW_FLAGS_HW_REQUESTER_RETX_SUPPORTED;
   910		req.stat_ctx_id = cpu_to_le32(ctx->stats.fw_id);
   911		bnxt_qplib_fill_cmdqmsg(&msg, &req, &resp, NULL, sizeof(req), sizeof(resp), 0);
   912		rc = bnxt_qplib_rcfw_send_message(rcfw, &msg);
   913		if (rc)
   914			return rc;
   915		set_bit(FIRMWARE_INITIALIZED_FLAG, &rcfw->cmdq.flags);
   916		return 0;
   917	}
   918	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux