drivers/platform/mellanox/mlxbf-pmc.c:1172:14: sparse: sparse: incorrect type in assignment (different address spaces)

From: kernel test robot
Date: Thu Nov 16 2023 - 11:41:00 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 7475e51b87969e01a6812eac713a1c8310372e8a
commit: 423c3361855c1e81f1cb91728a2ac5ddfd2cbf16 platform/mellanox: mlxbf-pmc: Add support for BlueField-3
date: 9 weeks ago
config: arm64-randconfig-r121-20231116 (https://download.01.org/0day-ci/archive/20231117/202311170008.NMSMlgyY-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231117/202311170008.NMSMlgyY-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/202311170008.NMSMlgyY-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/platform/mellanox/mlxbf-pmc.c:1172:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/platform/mellanox/mlxbf-pmc.c:1172:14: sparse: expected void *addr
drivers/platform/mellanox/mlxbf-pmc.c:1172:14: sparse: got void [noderef] __iomem *
>> drivers/platform/mellanox/mlxbf-pmc.c:1174:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *addr @@
drivers/platform/mellanox/mlxbf-pmc.c:1174:31: sparse: expected void [noderef] __iomem *addr
drivers/platform/mellanox/mlxbf-pmc.c:1174:31: sparse: got void *addr
drivers/platform/mellanox/mlxbf-pmc.c:1186:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *addr @@
drivers/platform/mellanox/mlxbf-pmc.c:1186:32: sparse: expected void [noderef] __iomem *addr
drivers/platform/mellanox/mlxbf-pmc.c:1186:32: sparse: got void *addr
drivers/platform/mellanox/mlxbf-pmc.c:1194:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/platform/mellanox/mlxbf-pmc.c:1194:14: sparse: expected void *addr
drivers/platform/mellanox/mlxbf-pmc.c:1194:14: sparse: got void [noderef] __iomem *
drivers/platform/mellanox/mlxbf-pmc.c:1198:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *addr @@
drivers/platform/mellanox/mlxbf-pmc.c:1198:32: sparse: expected void [noderef] __iomem *addr
drivers/platform/mellanox/mlxbf-pmc.c:1198:32: sparse: got void *addr
drivers/platform/mellanox/mlxbf-pmc.c:1415:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/platform/mellanox/mlxbf-pmc.c:1415:14: sparse: expected void *addr
drivers/platform/mellanox/mlxbf-pmc.c:1415:14: sparse: got void [noderef] __iomem *
drivers/platform/mellanox/mlxbf-pmc.c:1417:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *addr @@
drivers/platform/mellanox/mlxbf-pmc.c:1417:31: sparse: expected void [noderef] __iomem *addr
drivers/platform/mellanox/mlxbf-pmc.c:1417:31: sparse: got void *addr

vim +1172 drivers/platform/mellanox/mlxbf-pmc.c

1163
1164 /* Method to handle crspace counter programming */
1165 static int mlxbf_pmc_program_crspace_counter(int blk_num, uint32_t cnt_num,
1166 uint32_t evt)
1167 {
1168 uint32_t word;
1169 void *addr;
1170 int ret;
1171
> 1172 addr = pmc->block[blk_num].mmio_base +
1173 (rounddown(cnt_num, 2) * MLXBF_PMC_CRSPACE_PERFSEL_SZ);
> 1174 ret = mlxbf_pmc_readl(addr, &word);
1175 if (ret)
1176 return ret;
1177
1178 if (cnt_num % 2) {
1179 word &= ~MLXBF_PMC_CRSPACE_PERFSEL1;
1180 word |= FIELD_PREP(MLXBF_PMC_CRSPACE_PERFSEL1, evt);
1181 } else {
1182 word &= ~MLXBF_PMC_CRSPACE_PERFSEL0;
1183 word |= FIELD_PREP(MLXBF_PMC_CRSPACE_PERFSEL0, evt);
1184 }
1185
1186 return mlxbf_pmc_write(addr, MLXBF_PMC_WRITE_REG_32, word);
1187 }
1188

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