From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: arch/sh/mm/cache-sh2.c:65:15: sparse: sparse: incorrect type in argument 1 (different base types)
Date: Tue, 10 Nov 2020 19:35:50 +0800 [thread overview]
Message-ID: <202011101924.im0AvXAY-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 22882 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 407ab579637ced6dc32cfb2295afb7259cca4b22
commit: e5fc436f06eef54ef512ea55a9db8eb9f2e76959 sparse: use static inline for __chk_{user,io}_ptr()
date: 2 months ago
config: sh-randconfig-s032-20201109 (attached as .config)
compiler: sh4-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-76-gf680124b-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e5fc436f06eef54ef512ea55a9db8eb9f2e76959
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout e5fc436f06eef54ef512ea55a9db8eb9f2e76959
# 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=sh
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
"sparse warnings: (new ones prefixed by >>)"
arch/sh/mm/cache-sh2.c:30:47: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long @@
arch/sh/mm/cache-sh2.c:30:47: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh2.c:30:47: sparse: got unsigned long
arch/sh/mm/cache-sh2.c:33:33: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long @@
arch/sh/mm/cache-sh2.c:33:33: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh2.c:33:33: sparse: got unsigned long
arch/sh/mm/cache-sh2.c:49:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long @@
arch/sh/mm/cache-sh2.c:49:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh2.c:49:17: sparse: got unsigned long
>> arch/sh/mm/cache-sh2.c:65:15: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/mm/cache-sh2.c:65:15: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh2.c:65:15: sparse: got unsigned int
arch/sh/mm/cache-sh2.c:67:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/mm/cache-sh2.c:67:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh2.c:67:9: sparse: got unsigned int
--
drivers/firewire/core-cdev.c:1088:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@
drivers/firewire/core-cdev.c:1088:21: sparse: expected unsigned int const *__gu_addr
drivers/firewire/core-cdev.c:1088:21: sparse: got unsigned int [noderef] __user *
>> drivers/firewire/core-cdev.c:1088:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
>> drivers/firewire/core-cdev.c:1088:21: sparse: expected void const volatile [noderef] __user *ptr
drivers/firewire/core-cdev.c:1088:21: sparse: got unsigned int const *__gu_addr
--
drivers/md/md.c:7693:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user * @@
drivers/md/md.c:7693:21: sparse: expected int const *__gu_addr
drivers/md/md.c:7693:21: sparse: got int [noderef] __user *
>> drivers/md/md.c:7693:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
>> drivers/md/md.c:7693:21: sparse: expected void const volatile [noderef] __user *ptr
drivers/md/md.c:7693:21: sparse: got int const *__gu_addr
--
>> drivers/spi/spi-lp8841-rtc.c:112:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
>> drivers/spi/spi-lp8841-rtc.c:112:17: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:112:17: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:121:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:121:17: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:121:17: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:143:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:143:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:143:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:147:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:147:17: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:147:17: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:209:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *iomem @@ got void [noderef] __iomem * @@
drivers/spi/spi-lp8841-rtc.c:209:21: sparse: expected void *iomem
drivers/spi/spi-lp8841-rtc.c:209:21: sparse: got void [noderef] __iomem *
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: expected void const [noderef] __iomem *
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: expected void const [noderef] __iomem *
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: got void *iomem
--
drivers/tee/tee_core.c:683:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@
drivers/tee/tee_core.c:683:13: sparse: expected unsigned int const *__gu_addr
drivers/tee/tee_core.c:683:13: sparse: got unsigned int [noderef] __user *
>> drivers/tee/tee_core.c:683:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
>> drivers/tee/tee_core.c:683:13: sparse: expected void const volatile [noderef] __user *ptr
drivers/tee/tee_core.c:683:13: sparse: got unsigned int const *__gu_addr
drivers/tee/tee_core.c:781:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@
drivers/tee/tee_core.c:781:13: sparse: expected unsigned int const *__gu_addr
drivers/tee/tee_core.c:781:13: sparse: got unsigned int [noderef] __user *
drivers/tee/tee_core.c:781:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
drivers/tee/tee_core.c:781:13: sparse: expected void const volatile [noderef] __user *ptr
drivers/tee/tee_core.c:781:13: sparse: got unsigned int const *__gu_addr
drivers/tee/tee_core.c:782:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@
drivers/tee/tee_core.c:782:13: sparse: expected unsigned int const *__gu_addr
drivers/tee/tee_core.c:782:13: sparse: got unsigned int [noderef] __user *
drivers/tee/tee_core.c:782:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
drivers/tee/tee_core.c:782:13: sparse: expected void const volatile [noderef] __user *ptr
drivers/tee/tee_core.c:782:13: sparse: got unsigned int const *__gu_addr
--
drivers/video/fbdev/s3c-fb.c:1024:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user * @@
drivers/video/fbdev/s3c-fb.c:1024:21: sparse: expected unsigned int const *__gu_addr
drivers/video/fbdev/s3c-fb.c:1024:21: sparse: got unsigned int [noderef] [usertype] __user *
>> drivers/video/fbdev/s3c-fb.c:1024:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
>> drivers/video/fbdev/s3c-fb.c:1024:21: sparse: expected void const volatile [noderef] __user *ptr
drivers/video/fbdev/s3c-fb.c:1024:21: sparse: got unsigned int const *__gu_addr
--
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: got int [noderef] __user *p
>> sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
>> sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: got int const *__gu_addr
--
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *arg @@
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: got int [noderef] __user *arg
>> sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
>> sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *arg @@
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: got int [noderef] __user *arg
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *arg @@
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: got int [noderef] __user *arg
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: got int const *__gu_addr
--
net/xdp/xsk.c:835:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *optlen @@
net/xdp/xsk.c:835:13: sparse: expected int const *__gu_addr
net/xdp/xsk.c:835:13: sparse: got int [noderef] __user *optlen
>> net/xdp/xsk.c:835:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
>> net/xdp/xsk.c:835:13: sparse: expected void const volatile [noderef] __user *ptr
net/xdp/xsk.c:835:13: sparse: got int const *__gu_addr
vim +65 arch/sh/mm/cache-sh2.c
^1da177e4c3f415 Linus Torvalds 2005-04-16 52
109b44a82a7a8ae Paul Mundt 2009-08-15 53 static void sh2__flush_invalidate_region(void *start, int size)
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 54 {
cce2d453e4940d3 Yoshinori Sato 2008-08-04 55 #ifdef CONFIG_CACHE_WRITEBACK
cce2d453e4940d3 Yoshinori Sato 2008-08-04 56 /*
cce2d453e4940d3 Yoshinori Sato 2008-08-04 57 * SH-2 does not support individual line invalidation, only a
cce2d453e4940d3 Yoshinori Sato 2008-08-04 58 * global invalidate.
cce2d453e4940d3 Yoshinori Sato 2008-08-04 59 */
cce2d453e4940d3 Yoshinori Sato 2008-08-04 60 unsigned long ccr;
cce2d453e4940d3 Yoshinori Sato 2008-08-04 61 unsigned long flags;
cce2d453e4940d3 Yoshinori Sato 2008-08-04 62 local_irq_save(flags);
cce2d453e4940d3 Yoshinori Sato 2008-08-04 63 jump_to_uncached();
cce2d453e4940d3 Yoshinori Sato 2008-08-04 64
a5f6ea29f9a9184 Geert Uytterhoeven 2014-03-03 @65 ccr = __raw_readl(SH_CCR);
cce2d453e4940d3 Yoshinori Sato 2008-08-04 66 ccr |= CCR_CACHE_INVALIDATE;
a5f6ea29f9a9184 Geert Uytterhoeven 2014-03-03 67 __raw_writel(ccr, SH_CCR);
cce2d453e4940d3 Yoshinori Sato 2008-08-04 68
cce2d453e4940d3 Yoshinori Sato 2008-08-04 69 back_to_cached();
cce2d453e4940d3 Yoshinori Sato 2008-08-04 70 local_irq_restore(flags);
cce2d453e4940d3 Yoshinori Sato 2008-08-04 71 #else
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 72 unsigned long v;
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 73 unsigned long begin, end;
^1da177e4c3f415 Linus Torvalds 2005-04-16 74
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 75 begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 76 end = ((unsigned long)start + size + L1_CACHE_BYTES-1)
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 77 & ~(L1_CACHE_BYTES-1);
^1da177e4c3f415 Linus Torvalds 2005-04-16 78
cce2d453e4940d3 Yoshinori Sato 2008-08-04 79 for (v = begin; v < end; v+=L1_CACHE_BYTES)
9d56dd3b083a3be Paul Mundt 2010-01-26 80 __raw_writel((v & CACHE_PHYSADDR_MASK),
cce2d453e4940d3 Yoshinori Sato 2008-08-04 81 CACHE_OC_ADDRESS_ARRAY | (v & 0x00000ff0) | 0x00000008);
cce2d453e4940d3 Yoshinori Sato 2008-08-04 82 #endif
cce2d453e4940d3 Yoshinori Sato 2008-08-04 83 }
109b44a82a7a8ae Paul Mundt 2009-08-15 84
:::::: The code@line 65 was first introduced by commit
:::::: a5f6ea29f9a918403629f8369ae55fac6b09cb53 sh: prefix sh-specific "CCR" and "CCR2" by "SH_"
:::::: TO: Geert Uytterhoeven <geert@linux-m68k.org>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30438 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Subject: arch/sh/mm/cache-sh2.c:65:15: sparse: sparse: incorrect type in argument 1 (different base types)
Date: Tue, 10 Nov 2020 19:35:50 +0800 [thread overview]
Message-ID: <202011101924.im0AvXAY-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 22656 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 407ab579637ced6dc32cfb2295afb7259cca4b22
commit: e5fc436f06eef54ef512ea55a9db8eb9f2e76959 sparse: use static inline for __chk_{user,io}_ptr()
date: 2 months ago
config: sh-randconfig-s032-20201109 (attached as .config)
compiler: sh4-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-76-gf680124b-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e5fc436f06eef54ef512ea55a9db8eb9f2e76959
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout e5fc436f06eef54ef512ea55a9db8eb9f2e76959
# 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=sh
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
"sparse warnings: (new ones prefixed by >>)"
arch/sh/mm/cache-sh2.c:30:47: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long @@
arch/sh/mm/cache-sh2.c:30:47: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh2.c:30:47: sparse: got unsigned long
arch/sh/mm/cache-sh2.c:33:33: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long @@
arch/sh/mm/cache-sh2.c:33:33: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh2.c:33:33: sparse: got unsigned long
arch/sh/mm/cache-sh2.c:49:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long @@
arch/sh/mm/cache-sh2.c:49:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh2.c:49:17: sparse: got unsigned long
>> arch/sh/mm/cache-sh2.c:65:15: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/mm/cache-sh2.c:65:15: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh2.c:65:15: sparse: got unsigned int
arch/sh/mm/cache-sh2.c:67:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/mm/cache-sh2.c:67:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh2.c:67:9: sparse: got unsigned int
--
drivers/firewire/core-cdev.c:1088:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@
drivers/firewire/core-cdev.c:1088:21: sparse: expected unsigned int const *__gu_addr
drivers/firewire/core-cdev.c:1088:21: sparse: got unsigned int [noderef] __user *
>> drivers/firewire/core-cdev.c:1088:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
>> drivers/firewire/core-cdev.c:1088:21: sparse: expected void const volatile [noderef] __user *ptr
drivers/firewire/core-cdev.c:1088:21: sparse: got unsigned int const *__gu_addr
--
drivers/md/md.c:7693:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user * @@
drivers/md/md.c:7693:21: sparse: expected int const *__gu_addr
drivers/md/md.c:7693:21: sparse: got int [noderef] __user *
>> drivers/md/md.c:7693:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
>> drivers/md/md.c:7693:21: sparse: expected void const volatile [noderef] __user *ptr
drivers/md/md.c:7693:21: sparse: got int const *__gu_addr
--
>> drivers/spi/spi-lp8841-rtc.c:112:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
>> drivers/spi/spi-lp8841-rtc.c:112:17: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:112:17: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:121:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:121:17: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:121:17: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:143:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:143:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:143:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:147:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:147:17: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:147:17: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:209:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *iomem @@ got void [noderef] __iomem * @@
drivers/spi/spi-lp8841-rtc.c:209:21: sparse: expected void *iomem
drivers/spi/spi-lp8841-rtc.c:209:21: sparse: got void [noderef] __iomem *
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: expected void const [noderef] __iomem *
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:57:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: expected void const [noderef] __iomem *
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-lp8841-rtc.c:47:9: sparse: got void *iomem
--
drivers/tee/tee_core.c:683:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@
drivers/tee/tee_core.c:683:13: sparse: expected unsigned int const *__gu_addr
drivers/tee/tee_core.c:683:13: sparse: got unsigned int [noderef] __user *
>> drivers/tee/tee_core.c:683:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
>> drivers/tee/tee_core.c:683:13: sparse: expected void const volatile [noderef] __user *ptr
drivers/tee/tee_core.c:683:13: sparse: got unsigned int const *__gu_addr
drivers/tee/tee_core.c:781:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@
drivers/tee/tee_core.c:781:13: sparse: expected unsigned int const *__gu_addr
drivers/tee/tee_core.c:781:13: sparse: got unsigned int [noderef] __user *
drivers/tee/tee_core.c:781:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
drivers/tee/tee_core.c:781:13: sparse: expected void const volatile [noderef] __user *ptr
drivers/tee/tee_core.c:781:13: sparse: got unsigned int const *__gu_addr
drivers/tee/tee_core.c:782:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@
drivers/tee/tee_core.c:782:13: sparse: expected unsigned int const *__gu_addr
drivers/tee/tee_core.c:782:13: sparse: got unsigned int [noderef] __user *
drivers/tee/tee_core.c:782:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
drivers/tee/tee_core.c:782:13: sparse: expected void const volatile [noderef] __user *ptr
drivers/tee/tee_core.c:782:13: sparse: got unsigned int const *__gu_addr
--
drivers/video/fbdev/s3c-fb.c:1024:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user * @@
drivers/video/fbdev/s3c-fb.c:1024:21: sparse: expected unsigned int const *__gu_addr
drivers/video/fbdev/s3c-fb.c:1024:21: sparse: got unsigned int [noderef] [usertype] __user *
>> drivers/video/fbdev/s3c-fb.c:1024:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
>> drivers/video/fbdev/s3c-fb.c:1024:21: sparse: expected void const volatile [noderef] __user *ptr
drivers/video/fbdev/s3c-fb.c:1024:21: sparse: got unsigned int const *__gu_addr
--
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: got int [noderef] __user *p
>> sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
>> sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: got int const *__gu_addr
--
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *arg @@
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: got int [noderef] __user *arg
>> sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
>> sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *arg @@
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: got int [noderef] __user *arg
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *arg @@
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: got int [noderef] __user *arg
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: got int const *__gu_addr
--
net/xdp/xsk.c:835:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *optlen @@
net/xdp/xsk.c:835:13: sparse: expected int const *__gu_addr
net/xdp/xsk.c:835:13: sparse: got int [noderef] __user *optlen
>> net/xdp/xsk.c:835:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
>> net/xdp/xsk.c:835:13: sparse: expected void const volatile [noderef] __user *ptr
net/xdp/xsk.c:835:13: sparse: got int const *__gu_addr
vim +65 arch/sh/mm/cache-sh2.c
^1da177e4c3f415 Linus Torvalds 2005-04-16 52
109b44a82a7a8ae Paul Mundt 2009-08-15 53 static void sh2__flush_invalidate_region(void *start, int size)
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 54 {
cce2d453e4940d3 Yoshinori Sato 2008-08-04 55 #ifdef CONFIG_CACHE_WRITEBACK
cce2d453e4940d3 Yoshinori Sato 2008-08-04 56 /*
cce2d453e4940d3 Yoshinori Sato 2008-08-04 57 * SH-2 does not support individual line invalidation, only a
cce2d453e4940d3 Yoshinori Sato 2008-08-04 58 * global invalidate.
cce2d453e4940d3 Yoshinori Sato 2008-08-04 59 */
cce2d453e4940d3 Yoshinori Sato 2008-08-04 60 unsigned long ccr;
cce2d453e4940d3 Yoshinori Sato 2008-08-04 61 unsigned long flags;
cce2d453e4940d3 Yoshinori Sato 2008-08-04 62 local_irq_save(flags);
cce2d453e4940d3 Yoshinori Sato 2008-08-04 63 jump_to_uncached();
cce2d453e4940d3 Yoshinori Sato 2008-08-04 64
a5f6ea29f9a9184 Geert Uytterhoeven 2014-03-03 @65 ccr = __raw_readl(SH_CCR);
cce2d453e4940d3 Yoshinori Sato 2008-08-04 66 ccr |= CCR_CACHE_INVALIDATE;
a5f6ea29f9a9184 Geert Uytterhoeven 2014-03-03 67 __raw_writel(ccr, SH_CCR);
cce2d453e4940d3 Yoshinori Sato 2008-08-04 68
cce2d453e4940d3 Yoshinori Sato 2008-08-04 69 back_to_cached();
cce2d453e4940d3 Yoshinori Sato 2008-08-04 70 local_irq_restore(flags);
cce2d453e4940d3 Yoshinori Sato 2008-08-04 71 #else
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 72 unsigned long v;
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 73 unsigned long begin, end;
^1da177e4c3f415 Linus Torvalds 2005-04-16 74
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 75 begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 76 end = ((unsigned long)start + size + L1_CACHE_BYTES-1)
9d4436a6fbc8c5e Yoshinori Sato 2006-11-05 77 & ~(L1_CACHE_BYTES-1);
^1da177e4c3f415 Linus Torvalds 2005-04-16 78
cce2d453e4940d3 Yoshinori Sato 2008-08-04 79 for (v = begin; v < end; v+=L1_CACHE_BYTES)
9d56dd3b083a3be Paul Mundt 2010-01-26 80 __raw_writel((v & CACHE_PHYSADDR_MASK),
cce2d453e4940d3 Yoshinori Sato 2008-08-04 81 CACHE_OC_ADDRESS_ARRAY | (v & 0x00000ff0) | 0x00000008);
cce2d453e4940d3 Yoshinori Sato 2008-08-04 82 #endif
cce2d453e4940d3 Yoshinori Sato 2008-08-04 83 }
109b44a82a7a8ae Paul Mundt 2009-08-15 84
:::::: The code at line 65 was first introduced by commit
:::::: a5f6ea29f9a918403629f8369ae55fac6b09cb53 sh: prefix sh-specific "CCR" and "CCR2" by "SH_"
:::::: TO: Geert Uytterhoeven <geert@linux-m68k.org>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30438 bytes --]
next reply other threads:[~2020-11-10 11:35 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-10 11:35 kernel test robot [this message]
2020-11-10 11:35 ` arch/sh/mm/cache-sh2.c:65:15: sparse: sparse: incorrect type in argument 1 (different base types) kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2020-11-10 9:42 kernel test robot
2020-11-10 9:42 ` kernel test robot
2020-11-10 7:14 kernel test robot
2020-11-10 7:14 ` kernel test robot
2020-11-10 4:43 kernel test robot
2020-11-10 4:43 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202011101924.im0AvXAY-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.