[openeuler:OLK-6.6 2116/2116] drivers/crypto/montage/tsse/tsse_fw_service.c:40:16: sparse: sparse: cast removes address space '__iomem' of expression

tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: f38765261337382b0302ed7d139c110e0fbe3f71 commit: 811debd4ea52033d7393d4a7de2be11f71c70348 [2116/2116] add support for Mont-TSSE Driver config: x86_64-randconfig-r113-20250410 (https://download.01.org/0day-ci/archive/20250410/202504101225.8jbFE2Ak-lkp@i...) compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250410/202504101225.8jbFE2Ak-lkp@i...) 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@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202504101225.8jbFE2Ak-lkp@intel.com/ sparse warnings: (new ones prefixed by >>)
drivers/crypto/montage/tsse/tsse_fw_service.c:40:16: sparse: sparse: cast removes address space '__iomem' of expression drivers/crypto/montage/tsse/tsse_fw_service.c:41:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *[assigned] h2d @@ drivers/crypto/montage/tsse/tsse_fw_service.c:41:21: sparse: expected void volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_fw_service.c:41:21: sparse: got unsigned char [usertype] *[assigned] h2d drivers/crypto/montage/tsse/tsse_fw_service.c:42:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] * @@ drivers/crypto/montage/tsse/tsse_fw_service.c:42:25: sparse: expected void volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_fw_service.c:42:25: sparse: got unsigned char [usertype] * drivers/crypto/montage/tsse/tsse_fw_service.c:26:5: sparse: sparse: symbol 'fw_send_msg' was not declared. Should it be static? drivers/crypto/montage/tsse/tsse_fw_service.c:51:6: sparse: sparse: symbol 'fw_free' was not declared. Should it be static? drivers/crypto/montage/tsse/tsse_fw_service.c:141:22: sparse: sparse: cast removes address space '__iomem' of expression drivers/crypto/montage/tsse/tsse_fw_service.c:141:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] * @@ drivers/crypto/montage/tsse/tsse_fw_service.c:141:22: sparse: expected void volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_fw_service.c:141:22: sparse: got unsigned char [usertype] * -- drivers/crypto/montage/tsse/tsse_ipc.c:22:40: sparse: sparse: cast removes address space '__iomem' of expression drivers/crypto/montage/tsse/tsse_ipc.c:17:17: sparse: sparse: symbol 'get_msginf' was not declared. Should it be static? drivers/crypto/montage/tsse/tsse_ipc.c:47:21: sparse: sparse: cast removes address space '__iomem' of expression drivers/crypto/montage/tsse/tsse_ipc.c:48:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const volatile [noderef] __iomem * @@ got unsigned int [usertype] *[assigned] msg_data @@ drivers/crypto/montage/tsse/tsse_ipc.c:48:36: sparse: expected void const volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_ipc.c:48:36: sparse: got unsigned int [usertype] *[assigned] msg_data drivers/crypto/montage/tsse/tsse_ipc.c:41:6: sparse: sparse: symbol 'ipc_recieve_msg' was not declared. Should it be static? drivers/crypto/montage/tsse/tsse_ipc.c:53:5: sparse: sparse: symbol 'msg_rout' was not declared. Should it be static? drivers/crypto/montage/tsse/tsse_ipc.c:107:16: sparse: sparse: cast removes address space '__iomem' of expression drivers/crypto/montage/tsse/tsse_ipc.c:108:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *[assigned] h2d @@ drivers/crypto/montage/tsse/tsse_ipc.c:108:21: sparse: expected void volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_ipc.c:108:21: sparse: got unsigned char [usertype] *[assigned] h2d drivers/crypto/montage/tsse/tsse_ipc.c:109:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] * @@ drivers/crypto/montage/tsse/tsse_ipc.c:109:25: sparse: expected void volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_ipc.c:109:25: sparse: got unsigned char [usertype] * drivers/crypto/montage/tsse/tsse_ipc.c:103:6: sparse: sparse: symbol 'ipc_send_msg' was not declared. Should it be static? drivers/crypto/montage/tsse/tsse_ipc.c:115:6: sparse: sparse: symbol 'ipc_hw_init' was not declared. Should it be static? drivers/crypto/montage/tsse/tsse_ipc.c:153:16: sparse: sparse: cast removes address space '__iomem' of expression drivers/crypto/montage/tsse/tsse_ipc.c:155:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *[assigned] h2d @@ drivers/crypto/montage/tsse/tsse_ipc.c:155:21: sparse: expected void volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_ipc.c:155:21: sparse: got unsigned char [usertype] *[assigned] h2d drivers/crypto/montage/tsse/tsse_ipc.c:156:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] * @@ drivers/crypto/montage/tsse/tsse_ipc.c:156:25: sparse: expected void volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_ipc.c:156:25: sparse: got unsigned char [usertype] * drivers/crypto/montage/tsse/tsse_ipc.c:122:5: sparse: sparse: symbol 'ipc_init_msg' was not declared. Should it be static? -- drivers/crypto/montage/tsse/tsse_vuart.c:61:28: sparse: sparse: cast to restricted __le32 drivers/crypto/montage/tsse/tsse_vuart.c:73:15: sparse: sparse: incorrect type in assignment (different base types) @@ expected int value @@ got restricted __le32 [usertype] @@ drivers/crypto/montage/tsse/tsse_vuart.c:73:15: sparse: expected int value drivers/crypto/montage/tsse/tsse_vuart.c:73:15: sparse: got restricted __le32 [usertype]
vim +/__iomem +40 drivers/crypto/montage/tsse/tsse_fw_service.c 25 26 int fw_send_msg(struct tsse_ipc *tsseipc, struct ipc_msg *msg) 27 { 28 u8 *h2d; 29 u32 int_reg; 30 u32 rc; 31 32 mutex_lock(&tsseipc->list_lock); 33 34 int_reg = readl(tsseipc->virt_addr + HOST2MAIN_INTR_SET_OFFSET); 35 if ((int_reg & IPC_REGISTER_INT_SET) != 0) { 36 rc = -1; 37 mutex_unlock(&tsseipc->list_lock); 38 return rc; 39 }
40 h2d = (u8 *)(tsseipc->virt_addr + HOST2MAIN_IPC_OFFSET); 41 memcpy_toio(h2d, msg, sizeof(struct ipc_header)); 42 memcpy_toio(h2d + sizeof(struct ipc_header), (u32 *)msg->i_data, 43 msg->header.i_len - sizeof(struct ipc_header)); 44 writel(0x1, tsseipc->virt_addr + HOST2MAIN_INTR_SET_OFFSET); 45 46 dev_info(tsseipc->dev, "notify device to get firmware\n"); 47 mutex_unlock(&tsseipc->list_lock); 48 return 0; 49 } 50
-- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
participants (1)
-
kernel test robot