drivers/dma/fsl_raid.c:115:17: sparse: sparse: incorrect type in argument 1 (different base types)

From: kernel test robot
Date: Tue Aug 11 2020 - 05:47:16 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 00e4db51259a5f936fec1424b884f029479d3981
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date: 8 weeks ago
config: powerpc-randconfig-s031-20200811 (attached as .config)
compiler: powerpc64-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.2-168-g9554805c-dirty
git checkout 670d0a4b10704667765f7d18f7592993d02783aa
# 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=powerpc

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/fsl_raid.c:115:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
>> drivers/dma/fsl_raid.c:115:17: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/dma/fsl_raid.c:115:17: sparse: got restricted __be32 *
>> drivers/dma/fsl_raid.c:129:34: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
>> drivers/dma/fsl_raid.c:129:34: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/dma/fsl_raid.c:129:34: sparse: got restricted __be32 *
drivers/dma/fsl_raid.c:171:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:171:17: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/dma/fsl_raid.c:171:17: sparse: got restricted __be32 *
drivers/dma/fsl_raid.c:196:34: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:196:34: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/dma/fsl_raid.c:196:34: sparse: got restricted __be32 *
drivers/dma/fsl_raid.c:210:36: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:210:36: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/dma/fsl_raid.c:210:36: sparse: got restricted __be32 *
drivers/dma/fsl_raid.c:220:42: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:220:42: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/dma/fsl_raid.c:220:42: sparse: got restricted __be32 *
drivers/dma/fsl_raid.c:226:26: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:226:26: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/dma/fsl_raid.c:226:26: sparse: got restricted __be32 *
drivers/dma/fsl_raid.c:246:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] efrl32 @@ got unsigned int [assigned] [usertype] efrl @@
drivers/dma/fsl_raid.c:246:26: sparse: expected restricted __be32 [usertype] efrl32
drivers/dma/fsl_raid.c:246:26: sparse: got unsigned int [assigned] [usertype] efrl
drivers/dma/fsl_raid.c:247:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] addr_high @@ got unsigned int [usertype] @@
drivers/dma/fsl_raid.c:247:29: sparse: expected restricted __be32 [usertype] addr_high
drivers/dma/fsl_raid.c:247:29: sparse: got unsigned int [usertype]
drivers/dma/fsl_raid.c:248:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] addr_low @@ got unsigned int [usertype] @@
drivers/dma/fsl_raid.c:248:28: sparse: expected restricted __be32 [usertype] addr_low
drivers/dma/fsl_raid.c:248:28: sparse: got unsigned int [usertype]
drivers/dma/fsl_raid.c:260:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] fmt32 @@ got int @@
drivers/dma/fsl_raid.c:260:28: sparse: expected restricted __be32 [usertype] fmt32
drivers/dma/fsl_raid.c:260:28: sparse: got int
drivers/dma/fsl_raid.c:261:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] lbea32 @@ got unsigned int [usertype] @@
drivers/dma/fsl_raid.c:261:29: sparse: expected restricted __be32 [usertype] lbea32
drivers/dma/fsl_raid.c:261:29: sparse: got unsigned int [usertype]
drivers/dma/fsl_raid.c:262:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] addr_low @@ got unsigned int [usertype] @@
drivers/dma/fsl_raid.c:262:31: sparse: expected restricted __be32 [usertype] addr_low
drivers/dma/fsl_raid.c:262:31: sparse: got unsigned int [usertype]
drivers/dma/fsl_raid.c:338:18: sparse: sparse: incompatible types for operation (<=):
drivers/dma/fsl_raid.c:338:18: sparse: struct fsl_re_desc *[assigned] desc
drivers/dma/fsl_raid.c:338:18: sparse: int
drivers/dma/fsl_raid.c:462:18: sparse: sparse: incompatible types for operation (<=):
drivers/dma/fsl_raid.c:462:18: sparse: struct fsl_re_desc *[assigned] desc
drivers/dma/fsl_raid.c:462:18: sparse: int
drivers/dma/fsl_raid.c:546:18: sparse: sparse: incompatible types for operation (<=):
drivers/dma/fsl_raid.c:546:18: sparse: struct fsl_re_desc *[assigned] desc
drivers/dma/fsl_raid.c:546:18: sparse: int
drivers/dma/fsl_raid.c:712:23: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:714:23: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:716:23: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:718:23: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:720:23: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:722:23: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:726:31: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:729:23: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:735:23: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
>> drivers/dma/fsl_raid.c:768:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct fsl_re_ctrl *re_regs @@ got void [noderef] __iomem * @@
drivers/dma/fsl_raid.c:773:26: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:776:26: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:778:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:778:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@
drivers/dma/fsl_raid.c:778:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 * @@

vim +115 drivers/dma/fsl_raid.c

ad80da658bbcaa Xuelin Shi 2015-03-03 103
ad80da658bbcaa Xuelin Shi 2015-03-03 104 /* Copy descriptor from per chan software queue into hardware job ring */
ad80da658bbcaa Xuelin Shi 2015-03-03 105 static void fsl_re_issue_pending(struct dma_chan *chan)
ad80da658bbcaa Xuelin Shi 2015-03-03 106 {
ad80da658bbcaa Xuelin Shi 2015-03-03 107 struct fsl_re_chan *re_chan;
ad80da658bbcaa Xuelin Shi 2015-03-03 108 int avail;
ad80da658bbcaa Xuelin Shi 2015-03-03 109 struct fsl_re_desc *desc, *_desc;
ad80da658bbcaa Xuelin Shi 2015-03-03 110 unsigned long flags;
ad80da658bbcaa Xuelin Shi 2015-03-03 111
ad80da658bbcaa Xuelin Shi 2015-03-03 112 re_chan = container_of(chan, struct fsl_re_chan, chan);
ad80da658bbcaa Xuelin Shi 2015-03-03 113
ad80da658bbcaa Xuelin Shi 2015-03-03 114 spin_lock_irqsave(&re_chan->desc_lock, flags);
ad80da658bbcaa Xuelin Shi 2015-03-03 @115 avail = FSL_RE_SLOT_AVAIL(
ad80da658bbcaa Xuelin Shi 2015-03-03 116 in_be32(&re_chan->jrregs->inbring_slot_avail));
ad80da658bbcaa Xuelin Shi 2015-03-03 117
ad80da658bbcaa Xuelin Shi 2015-03-03 118 list_for_each_entry_safe(desc, _desc, &re_chan->submit_q, node) {
ad80da658bbcaa Xuelin Shi 2015-03-03 119 if (!avail)
ad80da658bbcaa Xuelin Shi 2015-03-03 120 break;
ad80da658bbcaa Xuelin Shi 2015-03-03 121
ad80da658bbcaa Xuelin Shi 2015-03-03 122 list_move_tail(&desc->node, &re_chan->active_q);
ad80da658bbcaa Xuelin Shi 2015-03-03 123
ad80da658bbcaa Xuelin Shi 2015-03-03 124 memcpy(&re_chan->inb_ring_virt_addr[re_chan->inb_count],
ad80da658bbcaa Xuelin Shi 2015-03-03 125 &desc->hwdesc, sizeof(struct fsl_re_hw_desc));
ad80da658bbcaa Xuelin Shi 2015-03-03 126
ad80da658bbcaa Xuelin Shi 2015-03-03 127 re_chan->inb_count = (re_chan->inb_count + 1) &
ad80da658bbcaa Xuelin Shi 2015-03-03 128 FSL_RE_RING_SIZE_MASK;
ad80da658bbcaa Xuelin Shi 2015-03-03 @129 out_be32(&re_chan->jrregs->inbring_add_job, FSL_RE_ADD_JOB(1));
ad80da658bbcaa Xuelin Shi 2015-03-03 130 avail--;
ad80da658bbcaa Xuelin Shi 2015-03-03 131 }
ad80da658bbcaa Xuelin Shi 2015-03-03 132 spin_unlock_irqrestore(&re_chan->desc_lock, flags);
ad80da658bbcaa Xuelin Shi 2015-03-03 133 }
ad80da658bbcaa Xuelin Shi 2015-03-03 134

:::::: The code at line 115 was first introduced by commit
:::::: ad80da658bbcaaac1d3617ea6cb0f4d5e16da422 dmaengine: Driver support for FSL RaidEngine device.

:::::: TO: Xuelin Shi <xuelin.shi@xxxxxxxxxxxxx>
:::::: 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