drivers/dma/sun6i-dma.c:244:45: sparse: sparse: incorrect type in argument 1 (different address spaces)

From: kernel test robot
Date: Sun Nov 15 2020 - 02:02:25 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: e28c0d7c92c89016c12a677616668957351e7542
commit: 005b73d0dd83c9cb9420a196bea8070cde30ecac m68knommu: __force type casts for raw IO access
date: 4 months ago
config: m68k-randconfig-s031-20201115 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-107-gaf3512a6-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=005b73d0dd83c9cb9420a196bea8070cde30ecac
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 005b73d0dd83c9cb9420a196bea8070cde30ecac
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=m68k

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


"sparse warnings: (new ones prefixed by >>)"
drivers/dma/sun6i-dma.c: note: in included file (through arch/m68k/include/asm/io.h, include/linux/scatterlist.h, include/linux/dmaengine.h):
arch/m68k/include/asm/io_no.h:96:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int volatile [usertype] @@ got restricted __le32 [usertype] @@
arch/m68k/include/asm/io_no.h:96:17: sparse: expected unsigned int volatile [usertype]
arch/m68k/include/asm/io_no.h:96:17: sparse: got restricted __le32 [usertype]
arch/m68k/include/asm/io_no.h:96:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int volatile [usertype] @@ got restricted __le32 [usertype] @@
arch/m68k/include/asm/io_no.h:96:17: sparse: expected unsigned int volatile [usertype]
arch/m68k/include/asm/io_no.h:96:17: sparse: got restricted __le32 [usertype]
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:96:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int volatile [usertype] @@ got restricted __le32 [usertype] @@
arch/m68k/include/asm/io_no.h:96:17: sparse: expected unsigned int volatile [usertype]
arch/m68k/include/asm/io_no.h:96:17: sparse: got restricted __le32 [usertype]
arch/m68k/include/asm/io_no.h:96:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int volatile [usertype] @@ got restricted __le32 [usertype] @@
arch/m68k/include/asm/io_no.h:96:17: sparse: expected unsigned int volatile [usertype]
arch/m68k/include/asm/io_no.h:96:17: sparse: got restricted __le32 [usertype]
arch/m68k/include/asm/io_no.h:96:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int volatile [usertype] @@ got restricted __le32 [usertype] @@
arch/m68k/include/asm/io_no.h:96:17: sparse: expected unsigned int volatile [usertype]
arch/m68k/include/asm/io_no.h:96:17: sparse: got restricted __le32 [usertype]
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
>> drivers/dma/sun6i-dma.c:244:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *address @@ got void [noderef] __iomem *base @@
>> drivers/dma/sun6i-dma.c:244:45: sparse: expected void *address
drivers/dma/sun6i-dma.c:244:45: sparse: got void [noderef] __iomem *base
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: too many warnings

vim +244 drivers/dma/sun6i-dma.c

555859308723d8 Maxime Ripard 2014-07-17 240
555859308723d8 Maxime Ripard 2014-07-17 241 static inline void sun6i_dma_dump_chan_regs(struct sun6i_dma_dev *sdev,
555859308723d8 Maxime Ripard 2014-07-17 242 struct sun6i_pchan *pchan)
555859308723d8 Maxime Ripard 2014-07-17 243 {
42c0d54e623695 Vinod Koul 2014-07-28 @244 phys_addr_t reg = virt_to_phys(pchan->base);
555859308723d8 Maxime Ripard 2014-07-17 245
555859308723d8 Maxime Ripard 2014-07-17 246 dev_dbg(sdev->slave.dev, "Chan %d reg: %pa\n"
555859308723d8 Maxime Ripard 2014-07-17 247 "\t___en(%04x): \t0x%08x\n"
555859308723d8 Maxime Ripard 2014-07-17 248 "\tpause(%04x): \t0x%08x\n"
555859308723d8 Maxime Ripard 2014-07-17 249 "\tstart(%04x): \t0x%08x\n"
555859308723d8 Maxime Ripard 2014-07-17 250 "\t__cfg(%04x): \t0x%08x\n"
555859308723d8 Maxime Ripard 2014-07-17 251 "\t__src(%04x): \t0x%08x\n"
555859308723d8 Maxime Ripard 2014-07-17 252 "\t__dst(%04x): \t0x%08x\n"
555859308723d8 Maxime Ripard 2014-07-17 253 "\tcount(%04x): \t0x%08x\n"
555859308723d8 Maxime Ripard 2014-07-17 254 "\t_para(%04x): \t0x%08x\n\n",
555859308723d8 Maxime Ripard 2014-07-17 255 pchan->idx, &reg,
555859308723d8 Maxime Ripard 2014-07-17 256 DMA_CHAN_ENABLE,
555859308723d8 Maxime Ripard 2014-07-17 257 readl(pchan->base + DMA_CHAN_ENABLE),
555859308723d8 Maxime Ripard 2014-07-17 258 DMA_CHAN_PAUSE,
555859308723d8 Maxime Ripard 2014-07-17 259 readl(pchan->base + DMA_CHAN_PAUSE),
555859308723d8 Maxime Ripard 2014-07-17 260 DMA_CHAN_LLI_ADDR,
555859308723d8 Maxime Ripard 2014-07-17 261 readl(pchan->base + DMA_CHAN_LLI_ADDR),
555859308723d8 Maxime Ripard 2014-07-17 262 DMA_CHAN_CUR_CFG,
555859308723d8 Maxime Ripard 2014-07-17 263 readl(pchan->base + DMA_CHAN_CUR_CFG),
555859308723d8 Maxime Ripard 2014-07-17 264 DMA_CHAN_CUR_SRC,
555859308723d8 Maxime Ripard 2014-07-17 265 readl(pchan->base + DMA_CHAN_CUR_SRC),
555859308723d8 Maxime Ripard 2014-07-17 266 DMA_CHAN_CUR_DST,
555859308723d8 Maxime Ripard 2014-07-17 267 readl(pchan->base + DMA_CHAN_CUR_DST),
555859308723d8 Maxime Ripard 2014-07-17 268 DMA_CHAN_CUR_CNT,
555859308723d8 Maxime Ripard 2014-07-17 269 readl(pchan->base + DMA_CHAN_CUR_CNT),
555859308723d8 Maxime Ripard 2014-07-17 270 DMA_CHAN_CUR_PARA,
555859308723d8 Maxime Ripard 2014-07-17 271 readl(pchan->base + DMA_CHAN_CUR_PARA));
555859308723d8 Maxime Ripard 2014-07-17 272 }
555859308723d8 Maxime Ripard 2014-07-17 273

:::::: The code at line 244 was first introduced by commit
:::::: 42c0d54e62369584f2491f072f405602ff504e0e dmaengine: sun6i: fix build failure on x86, xilinx targets

:::::: TO: Vinod Koul <vinod.koul@xxxxxxxxx>
:::::: CC: Vinod Koul <vinod.koul@xxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip