arch/sh/kernel/traps_32.c:574:9: sparse: sparse: incorrect type in initializer (different address spaces)

From: kernel test robot
Date: Sat Jun 18 2022 - 15:00:41 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 4b35035bcf80ddb47c0112c4fbd84a63a2836a18
commit: ca42bc4b7bda7c6d68f1cc97c27fc8ff7385c4c7 sh: fix trivial misannotations
date: 9 months ago
config: sh-randconfig-s032-20220619 (https://download.01.org/0day-ci/archive/20220619/202206190250.3Gx6KwSI-lkp@xxxxxxxxx/config)
compiler: sh4-linux-gcc (GCC) 11.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.4-30-g92122700-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ca42bc4b7bda7c6d68f1cc97c27fc8ff7385c4c7
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout ca42bc4b7bda7c6d68f1cc97c27fc8ff7385c4c7
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sh SHELL=/bin/bash arch/sh/kernel/

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


sparse warnings: (new ones prefixed by >>)
>> arch/sh/kernel/traps_32.c:574:9: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short const [noderef] __user *__gu_addr @@ got unsigned short * @@
arch/sh/kernel/traps_32.c:574:9: sparse: expected unsigned short const [noderef] __user *__gu_addr
arch/sh/kernel/traps_32.c:574:9: sparse: got unsigned short *
arch/sh/kernel/traps_32.c:563:5: sparse: sparse: symbol 'is_dsp_inst' was not declared. Should it be static?

vim +574 arch/sh/kernel/traps_32.c

^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 558
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 559 #ifdef CONFIG_SH_DSP
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 560 /*
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 561 * SH-DSP support gerg@xxxxxxxxxxxx.
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 562 */
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 563 int is_dsp_inst(struct pt_regs *regs)
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 564 {
882c12c4e1a95e arch/sh/kernel/traps.c Paul Mundt 2007-05-14 565 unsigned short inst = 0;
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 566
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 567 /*
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 568 * Safe guard if DSP mode is already enabled or we're lacking
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 569 * the DSP altogether.
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 570 */
11c1965687b0a4 arch/sh/kernel/traps.c Paul Mundt 2006-12-25 571 if (!(current_cpu_data.flags & CPU_HAS_DSP) || (regs->sr & SR_DSP))
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 572 return 0;
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 573
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 @574 get_user(inst, ((unsigned short *) regs->pc));
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 575
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 576 inst &= 0xf000;
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 577
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 578 /* Check for any type of DSP or support instruction */
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 579 if ((inst == 0xf000) || (inst == 0x4000))
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 580 return 1;
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 581
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 582 return 0;
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 583 }
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 584 #else
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 585 #define is_dsp_inst(regs) (0)
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 586 #endif /* CONFIG_SH_DSP */
^1da177e4c3f41 arch/sh/kernel/traps.c Linus Torvalds 2005-04-16 587

:::::: The code at line 574 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://01.org/lkp