[openeuler:OLK-6.6 2116/2116] drivers/crypto/montage/tsse/tsse_ipc.c:49:47: sparse: sparse: incorrect type in argument 2 (different address spaces)

tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 62b846e657553d00552c1c71b6ecc26017eb1a9a commit: 7795623241fe9eb57352a09b27d06b5d4ff07071 [2116/2116] add firmware update function for Mont-TSSE config: x86_64-randconfig-r113-20250410 (https://download.01.org/0day-ci/archive/20250410/202504101403.RKyoTq9Z-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/202504101403.RKyoTq9Z-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/202504101403.RKyoTq9Z-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) drivers/crypto/montage/tsse/tsse_ipc.c:27:40: sparse: sparse: cast removes address space '__iomem' of expression drivers/crypto/montage/tsse/tsse_ipc.c:48:28: sparse: sparse: cast removes address space '__iomem' of expression
drivers/crypto/montage/tsse/tsse_ipc.c:49:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const volatile [noderef] __iomem * @@ got unsigned char [usertype] *[assigned] device_msg_data @@ drivers/crypto/montage/tsse/tsse_ipc.c:49:47: sparse: expected void const volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_ipc.c:49:47: sparse: got unsigned char [usertype] *[assigned] device_msg_data drivers/crypto/montage/tsse/tsse_ipc.c:122:16: sparse: sparse: cast removes address space '__iomem' of expression drivers/crypto/montage/tsse/tsse_ipc.c:124: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:124:21: sparse: expected void volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_ipc.c:124:21: sparse: got unsigned char [usertype] *[assigned] h2d drivers/crypto/montage/tsse/tsse_ipc.c:125: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:125:25: sparse: expected void volatile [noderef] __iomem * drivers/crypto/montage/tsse/tsse_ipc.c:125:25: sparse: got unsigned char [usertype] * -- drivers/crypto/montage/tsse/tsse_dev_drv.c:148:1: sparse: sparse: symbol 'dev_attr_tsse_image_load' was not declared. Should it be static?
vim +49 drivers/crypto/montage/tsse/tsse_ipc.c 16 17 /** 18 * Create ipc_msg and read message from BAR. 19 * Return the pointer to ipc_msg, the caller is responsible for free it. 20 */ 21 static struct ipc_msg *get_msginf(void __iomem *d2h) 22 { 23 uint32_t u_len = 0; 24 struct ipc_msg *msg = NULL; 25 26 uint8_t *device_msg_data = NULL;
27 struct ipc_header *ipc_info = (struct ipc_header *)d2h; 28 29 // The memory layout in d2h should at least contains: 30 // ipc_header, msg_info and fw_load (message body) 31 if (ipc_info->i_len < sizeof(struct ipc_header) + 32 sizeof(struct msg_info) + sizeof(struct fw_load)) { 33 pr_info("%s(): msg format error\n", __func__); 34 return NULL; 35 } 36 u_len = ipc_info->i_len - sizeof(struct ipc_header); 37 msg = (struct ipc_msg *)(kzalloc(sizeof(struct ipc_msg) + u_len, 38 GFP_ATOMIC)); 39 if (!msg) { 40 pr_info("%s(): ipc_msg kzalloc failed\n", __func__); 41 return NULL; 42 } 43 44 msg->header.inst_id = ipc_info->inst_id; 45 msg->header.tgid = ipc_info->tgid; 46 msg->header.i_len = ipc_info->i_len; 47 48 device_msg_data = (uint8_t *)(d2h + sizeof(struct ipc_header)); 49 memcpy_fromio((uint8_t *)msg->i_data, device_msg_data, u_len); 50 51 return msg; 52 } 53
-- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
participants (1)
-
kernel test robot