Hi Frank, kernel test robot noticed the following build warnings: [auto build test WARNING on vkoul-dmaengine/next] [also build test WARNING on robh/for-next linus/master v6.4-rc3 next-20230525] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Frank-Li/dmaengine-fsl-edma-clean-up-EXPORT_SYMBOL_GPL-in-fsl-edma-common-c/20230526-224442 base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next patch link: https://lore.kernel.org/r/20230526143639.1037099-11-Frank.Li%40nxp.com patch subject: [PATCH v1 10/12] dmaengine: fsl-edma: move tcd into struct fsl_dma_chan config: i386-randconfig-s003-20230526 (https://download.01.org/0day-ci/archive/20230527/202305271951.gmRobs3a-lkp@xxxxxxxxx/config) compiler: gcc-11 (Debian 11.3.0-12) 11.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/intel-lab-lkp/linux/commit/913c495a6c017a70bd6d7a518a9edbd361212985 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Frank-Li/dmaengine-fsl-edma-clean-up-EXPORT_SYMBOL_GPL-in-fsl-edma-common-c/20230526-224442 git checkout 913c495a6c017a70bd6d7a518a9edbd361212985 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 olddefconfig make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash drivers/dma/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202305271951.gmRobs3a-lkp@xxxxxxxxx/ sparse warnings: (new ones prefixed by >>) drivers/dma/fsl-edma-common.c:367:9: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:367:9: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:368:9: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:368:9: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:370:9: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:370:9: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:371:9: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned short [usertype] val @@ got restricted __le16 [usertype] soff @@ drivers/dma/fsl-edma-common.c:371:9: sparse: expected unsigned short [usertype] val drivers/dma/fsl-edma-common.c:371:9: sparse: got restricted __le16 [usertype] soff >> drivers/dma/fsl-edma-common.c:371:9: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned int [usertype] val @@ got restricted __le16 [usertype] soff @@ drivers/dma/fsl-edma-common.c:371:9: sparse: expected unsigned int [usertype] val drivers/dma/fsl-edma-common.c:371:9: sparse: got restricted __le16 [usertype] soff drivers/dma/fsl-edma-common.c:373:9: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:373:9: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:374:9: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:374:9: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:376:9: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:376:9: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:377:9: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:377:9: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:378:9: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:378:9: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:380:9: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:380:9: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:388:9: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:388:9: sparse: sparse: cast from restricted __le16 vim +371 drivers/dma/fsl-edma-common.c 353 354 static void fsl_edma_set_tcd_regs(struct fsl_edma_chan *fsl_chan, 355 struct fsl_edma_hw_tcd *tcd) 356 { 357 u16 csr = 0; 358 359 /* 360 * TCD parameters are stored in struct fsl_edma_hw_tcd in little 361 * endian format. However, we need to load the TCD registers in 362 * big- or little-endian obeying the eDMA engine model endian, 363 * and this is performed from specific edma_write functions 364 */ 365 edma_write_tcdreg(fsl_chan, 0, csr); 366 367 edma_write_tcdreg(fsl_chan, (s32)tcd->saddr, saddr); 368 edma_write_tcdreg(fsl_chan, (s32)tcd->daddr, daddr); 369 370 edma_write_tcdreg(fsl_chan, (s16)tcd->attr, attr); > 371 edma_write_tcdreg(fsl_chan, tcd->soff, soff); 372 373 edma_write_tcdreg(fsl_chan, (s32)tcd->nbytes, nbytes); 374 edma_write_tcdreg(fsl_chan, (s32)tcd->slast, slast); 375 376 edma_write_tcdreg(fsl_chan, (s16)tcd->citer, citer); 377 edma_write_tcdreg(fsl_chan, (s16)tcd->biter, biter); 378 edma_write_tcdreg(fsl_chan, (s16)tcd->doff, doff); 379 380 edma_write_tcdreg(fsl_chan, (s32)tcd->dlast_sga, dlast_sga); 381 382 if (fsl_chan->is_sw) { 383 csr = le16_to_cpu(tcd->csr); 384 csr |= EDMA_TCD_CSR_START; 385 tcd->csr = cpu_to_le16(csr); 386 } 387 388 edma_write_tcdreg(fsl_chan, (s16)tcd->csr, csr); 389 } 390 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki