* [android-common:android13-5.15 2/2] drivers/dma/fsl-qdma.c:387:15: sparse: sparse: restricted __le32 degrades to integer
@ 2025-12-18 0:45 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-12-18 0:45 UTC (permalink / raw)
To: cros-kernel-buildreports; +Cc: oe-kbuild-all
tree: https://android.googlesource.com/kernel/common android13-5.15
head: d36711b0a31fb7c6682f53e306fa330cc0b125a2
commit: 106c1ac953a66556ec77456c46e818208d3a9bce [2/2] dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
config: arm64-randconfig-r132-20251216 (https://download.01.org/0day-ci/archive/20251218/202512180850.Q89JsCEX-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251218/202512180850.Q89JsCEX-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512180850.Q89JsCEX-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/dma/fsl-qdma.c:387:15: sparse: sparse: restricted __le32 degrades to integer
drivers/dma/fsl-qdma.c:390:19: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le64 [usertype] data @@ got unsigned long long @@
drivers/dma/fsl-qdma.c:390:19: sparse: expected restricted __le64 [usertype] data
drivers/dma/fsl-qdma.c:390:19: sparse: got unsigned long long
drivers/dma/fsl-qdma.c:392:13: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [assigned] [usertype] cmd @@ got restricted __le32 [usertype] @@
drivers/dma/fsl-qdma.c:392:13: sparse: expected unsigned int [assigned] [usertype] cmd
drivers/dma/fsl-qdma.c:392:13: sparse: got restricted __le32 [usertype]
drivers/dma/fsl-qdma.c:394:13: sparse: sparse: invalid assignment: |=
drivers/dma/fsl-qdma.c:394:13: sparse: left side has type unsigned int
drivers/dma/fsl-qdma.c:394:13: sparse: right side has type restricted __le32
drivers/dma/fsl-qdma.c:395:19: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le64 [usertype] data @@ got unsigned long long @@
drivers/dma/fsl-qdma.c:395:19: sparse: expected restricted __le64 [usertype] data
drivers/dma/fsl-qdma.c:395:19: sparse: got unsigned long long
drivers/dma/fsl-qdma.c:646:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/dma/fsl-qdma.c:646:50: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-qdma.c:646:50: sparse: got void *
drivers/dma/fsl-qdma.c:682:58: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/dma/fsl-qdma.c:682:58: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-qdma.c:682:58: sparse: got void *
drivers/dma/fsl-qdma.c:689:58: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/dma/fsl-qdma.c:689:58: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-qdma.c:689:58: sparse: got void *
drivers/dma/fsl-qdma.c:697:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/dma/fsl-qdma.c:697:50: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-qdma.c:697:50: sparse: got void *
drivers/dma/fsl-qdma.c:703:50: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/dma/fsl-qdma.c:703:50: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-qdma.c:703:50: sparse: got void *
drivers/dma/fsl-qdma.c:786:67: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void *block @@ got void [noderef] __iomem *[assigned] block @@
drivers/dma/fsl-qdma.c:786:67: sparse: expected void *block
drivers/dma/fsl-qdma.c:786:67: sparse: got void [noderef] __iomem *[assigned] block
vim +387 drivers/dma/fsl-qdma.c
b092529e0aa098 Peng Ma 2018-10-30 354
b092529e0aa098 Peng Ma 2018-10-30 355 static void fsl_qdma_comp_fill_memcpy(struct fsl_qdma_comp *fsl_comp,
b092529e0aa098 Peng Ma 2018-10-30 356 dma_addr_t dst, dma_addr_t src, u32 len)
b092529e0aa098 Peng Ma 2018-10-30 357 {
8f95adcf3a5aab Peng Ma 2019-05-22 358 u32 cmd;
b092529e0aa098 Peng Ma 2018-10-30 359 struct fsl_qdma_format *sdf, *ddf;
b092529e0aa098 Peng Ma 2018-10-30 360 struct fsl_qdma_format *ccdf, *csgf_desc, *csgf_src, *csgf_dest;
b092529e0aa098 Peng Ma 2018-10-30 361
b092529e0aa098 Peng Ma 2018-10-30 362 ccdf = fsl_comp->virt_addr;
b092529e0aa098 Peng Ma 2018-10-30 363 csgf_desc = fsl_comp->virt_addr + 1;
b092529e0aa098 Peng Ma 2018-10-30 364 csgf_src = fsl_comp->virt_addr + 2;
b092529e0aa098 Peng Ma 2018-10-30 365 csgf_dest = fsl_comp->virt_addr + 3;
b092529e0aa098 Peng Ma 2018-10-30 366 sdf = fsl_comp->desc_virt_addr;
b092529e0aa098 Peng Ma 2018-10-30 367 ddf = fsl_comp->desc_virt_addr + 1;
b092529e0aa098 Peng Ma 2018-10-30 368
b092529e0aa098 Peng Ma 2018-10-30 369 memset(fsl_comp->virt_addr, 0, FSL_QDMA_COMMAND_BUFFER_SIZE);
b092529e0aa098 Peng Ma 2018-10-30 370 memset(fsl_comp->desc_virt_addr, 0, FSL_QDMA_DESCRIPTOR_BUFFER_SIZE);
b092529e0aa098 Peng Ma 2018-10-30 371 /* Head Command Descriptor(Frame Descriptor) */
b092529e0aa098 Peng Ma 2018-10-30 372 qdma_desc_addr_set64(ccdf, fsl_comp->bus_addr + 16);
b092529e0aa098 Peng Ma 2018-10-30 373 qdma_ccdf_set_format(ccdf, qdma_ccdf_get_offset(ccdf));
b092529e0aa098 Peng Ma 2018-10-30 374 qdma_ccdf_set_ser(ccdf, qdma_ccdf_get_status(ccdf));
b092529e0aa098 Peng Ma 2018-10-30 375 /* Status notification is enqueued to status queue. */
b092529e0aa098 Peng Ma 2018-10-30 376 /* Compound Command Descriptor(Frame List Table) */
b092529e0aa098 Peng Ma 2018-10-30 377 qdma_desc_addr_set64(csgf_desc, fsl_comp->desc_bus_addr);
b092529e0aa098 Peng Ma 2018-10-30 378 /* It must be 32 as Compound S/G Descriptor */
b092529e0aa098 Peng Ma 2018-10-30 379 qdma_csgf_set_len(csgf_desc, 32);
b092529e0aa098 Peng Ma 2018-10-30 380 qdma_desc_addr_set64(csgf_src, src);
b092529e0aa098 Peng Ma 2018-10-30 381 qdma_csgf_set_len(csgf_src, len);
b092529e0aa098 Peng Ma 2018-10-30 382 qdma_desc_addr_set64(csgf_dest, dst);
b092529e0aa098 Peng Ma 2018-10-30 383 qdma_csgf_set_len(csgf_dest, len);
b092529e0aa098 Peng Ma 2018-10-30 384 /* This entry is the last entry. */
b092529e0aa098 Peng Ma 2018-10-30 385 qdma_csgf_set_f(csgf_dest, len);
b092529e0aa098 Peng Ma 2018-10-30 386 /* Descriptor Buffer */
8f95adcf3a5aab Peng Ma 2019-05-22 @387 cmd = cpu_to_le32(FSL_QDMA_CMD_RWTTYPE <<
106c1ac953a665 Peng Ma 2024-02-01 388 FSL_QDMA_CMD_RWTTYPE_OFFSET) |
106c1ac953a665 Peng Ma 2024-02-01 389 FSL_QDMA_CMD_PF;
8f95adcf3a5aab Peng Ma 2019-05-22 390 sdf->data = QDMA_SDDF_CMD(cmd);
8f95adcf3a5aab Peng Ma 2019-05-22 391
8f95adcf3a5aab Peng Ma 2019-05-22 392 cmd = cpu_to_le32(FSL_QDMA_CMD_RWTTYPE <<
b092529e0aa098 Peng Ma 2018-10-30 393 FSL_QDMA_CMD_RWTTYPE_OFFSET);
8f95adcf3a5aab Peng Ma 2019-05-22 394 cmd |= cpu_to_le32(FSL_QDMA_CMD_LWC << FSL_QDMA_CMD_LWC_OFFSET);
8f95adcf3a5aab Peng Ma 2019-05-22 395 ddf->data = QDMA_SDDF_CMD(cmd);
b092529e0aa098 Peng Ma 2018-10-30 396 }
b092529e0aa098 Peng Ma 2018-10-30 397
:::::: The code at line 387 was first introduced by commit
:::::: 8f95adcf3a5aabb7a416d3c03c561acd580df213 dmaengine: fsl-qdma: fixed the source/destination descriptor format
:::::: TO: Peng Ma <peng.ma@nxp.com>
:::::: CC: Vinod Koul <vkoul@kernel.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-12-18 0:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-18 0:45 [android-common:android13-5.15 2/2] drivers/dma/fsl-qdma.c:387:15: sparse: sparse: restricted __le32 degrades to integer kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.