All of lore.kernel.org
 help / color / mirror / Atom feed
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/kernel/cpu/sh3/serial-sh770x.c:15:16: sparse: sparse: incorrect type in argument 1 (different base types)
Date: Tue, 2 Feb 2021 22:25:58 +0800	[thread overview]
Message-ID: <202102022250.K4vRmUJS-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 7845 bytes --]

Hi Luc,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   88bb507a74ea7d75fa49edd421eaa710a7d80598
commit: e5fc436f06eef54ef512ea55a9db8eb9f2e76959 sparse: use static inline for __chk_{user,io}_ptr()
date:   5 months ago
config: sh-randconfig-s031-20210202 (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-215-g0fb77bb6-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/kernel/cpu/sh3/serial-sh770x.c:15:16: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:15:16: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:15:16: sparse:     got unsigned int
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:17:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:17:9: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:17:9: sparse:     got unsigned int
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:21:24: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:21:24: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:21:24: sparse:     got unsigned int
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:24:17: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:24:17: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:24:17: sparse:     got unsigned int
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:26:24: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:26:24: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:26:24: sparse:     got unsigned int
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:28:17: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:28:17: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:28:17: sparse:     got unsigned int
--
   drivers/watchdog/sc520_wdt.c:233:37: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected char const *__gu_addr @@     got char const [noderef] __user * @@
   drivers/watchdog/sc520_wdt.c:233:37: sparse:     expected char const *__gu_addr
   drivers/watchdog/sc520_wdt.c:233:37: sparse:     got char const [noderef] __user *
>> drivers/watchdog/sc520_wdt.c:233:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__gu_addr @@
   drivers/watchdog/sc520_wdt.c:233:37: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/sc520_wdt.c:233:37: sparse:     got char const *__gu_addr
   drivers/watchdog/sc520_wdt.c:294:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int const *__gu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/sc520_wdt.c:294:21: sparse:     expected int const *__gu_addr
   drivers/watchdog/sc520_wdt.c:294:21: sparse:     got int [noderef] __user *p
>> drivers/watchdog/sc520_wdt.c:294:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int const *__gu_addr @@
   drivers/watchdog/sc520_wdt.c:294:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/sc520_wdt.c:294:21: sparse:     got int const *__gu_addr
   drivers/watchdog/sc520_wdt.c:316:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int const *__gu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/sc520_wdt.c:316:21: sparse:     expected int const *__gu_addr
   drivers/watchdog/sc520_wdt.c:316:21: sparse:     got int [noderef] __user *p
   drivers/watchdog/sc520_wdt.c:316:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int const *__gu_addr @@
   drivers/watchdog/sc520_wdt.c:316:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/sc520_wdt.c:316:21: sparse:     got int const *__gu_addr

vim +15 arch/sh/kernel/cpu/sh3/serial-sh770x.c

61a6976bf19a6c Paul Mundt 2011-06-14   9  
61a6976bf19a6c Paul Mundt 2011-06-14  10  static void sh770x_sci_init_pins(struct uart_port *port, unsigned int cflag)
61a6976bf19a6c Paul Mundt 2011-06-14  11  {
61a6976bf19a6c Paul Mundt 2011-06-14  12  	unsigned short data;
61a6976bf19a6c Paul Mundt 2011-06-14  13  
61a6976bf19a6c Paul Mundt 2011-06-14  14  	/* We need to set SCPCR to enable RTS/CTS */
61a6976bf19a6c Paul Mundt 2011-06-14 @15  	data = __raw_readw(SCPCR);
61a6976bf19a6c Paul Mundt 2011-06-14  16  	/* Clear out SCP7MD1,0, SCP6MD1,0, SCP4MD1,0*/
61a6976bf19a6c Paul Mundt 2011-06-14  17  	__raw_writew(data & 0x0fcf, SCPCR);
61a6976bf19a6c Paul Mundt 2011-06-14  18  
61a6976bf19a6c Paul Mundt 2011-06-14  19  	if (!(cflag & CRTSCTS)) {
61a6976bf19a6c Paul Mundt 2011-06-14  20  		/* We need to set SCPCR to enable RTS/CTS */
61a6976bf19a6c Paul Mundt 2011-06-14  21  		data = __raw_readw(SCPCR);
61a6976bf19a6c Paul Mundt 2011-06-14  22  		/* Clear out SCP7MD1,0, SCP4MD1,0,
61a6976bf19a6c Paul Mundt 2011-06-14  23  		   Set SCP6MD1,0 = {01} (output)  */
61a6976bf19a6c Paul Mundt 2011-06-14  24  		__raw_writew((data & 0x0fcf) | 0x1000, SCPCR);
61a6976bf19a6c Paul Mundt 2011-06-14  25  
61a6976bf19a6c Paul Mundt 2011-06-14  26  		data = __raw_readb(SCPDR);
61a6976bf19a6c Paul Mundt 2011-06-14  27  		/* Set /RTS2 (bit6) = 0 */
61a6976bf19a6c Paul Mundt 2011-06-14  28  		__raw_writeb(data & 0xbf, SCPDR);
61a6976bf19a6c Paul Mundt 2011-06-14  29  	}
61a6976bf19a6c Paul Mundt 2011-06-14  30  }
61a6976bf19a6c Paul Mundt 2011-06-14  31  

:::::: The code at line 15 was first introduced by commit
:::::: 61a6976bf19a6cf5dfcf37c3536665b316f22d49 serial: sh-sci: Abstract register maps.

:::::: TO: Paul Mundt <lethal@linux-sh.org>
:::::: CC: Paul Mundt <lethal@linux-sh.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: 27622 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: arch/sh/kernel/cpu/sh3/serial-sh770x.c:15:16: sparse: sparse: incorrect type in argument 1 (different base types)
Date: Tue, 02 Feb 2021 22:25:58 +0800	[thread overview]
Message-ID: <202102022250.K4vRmUJS-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 7947 bytes --]

Hi Luc,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   88bb507a74ea7d75fa49edd421eaa710a7d80598
commit: e5fc436f06eef54ef512ea55a9db8eb9f2e76959 sparse: use static inline for __chk_{user,io}_ptr()
date:   5 months ago
config: sh-randconfig-s031-20210202 (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-215-g0fb77bb6-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/kernel/cpu/sh3/serial-sh770x.c:15:16: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:15:16: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:15:16: sparse:     got unsigned int
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:17:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:17:9: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:17:9: sparse:     got unsigned int
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:21:24: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:21:24: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:21:24: sparse:     got unsigned int
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:24:17: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:24:17: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:24:17: sparse:     got unsigned int
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:26:24: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:26:24: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:26:24: sparse:     got unsigned int
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:28:17: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int @@
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:28:17: sparse:     expected void const volatile [noderef] __iomem *ptr
   arch/sh/kernel/cpu/sh3/serial-sh770x.c:28:17: sparse:     got unsigned int
--
   drivers/watchdog/sc520_wdt.c:233:37: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected char const *__gu_addr @@     got char const [noderef] __user * @@
   drivers/watchdog/sc520_wdt.c:233:37: sparse:     expected char const *__gu_addr
   drivers/watchdog/sc520_wdt.c:233:37: sparse:     got char const [noderef] __user *
>> drivers/watchdog/sc520_wdt.c:233:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__gu_addr @@
   drivers/watchdog/sc520_wdt.c:233:37: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/sc520_wdt.c:233:37: sparse:     got char const *__gu_addr
   drivers/watchdog/sc520_wdt.c:294:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int const *__gu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/sc520_wdt.c:294:21: sparse:     expected int const *__gu_addr
   drivers/watchdog/sc520_wdt.c:294:21: sparse:     got int [noderef] __user *p
>> drivers/watchdog/sc520_wdt.c:294:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int const *__gu_addr @@
   drivers/watchdog/sc520_wdt.c:294:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/sc520_wdt.c:294:21: sparse:     got int const *__gu_addr
   drivers/watchdog/sc520_wdt.c:316:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int const *__gu_addr @@     got int [noderef] __user *p @@
   drivers/watchdog/sc520_wdt.c:316:21: sparse:     expected int const *__gu_addr
   drivers/watchdog/sc520_wdt.c:316:21: sparse:     got int [noderef] __user *p
   drivers/watchdog/sc520_wdt.c:316:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int const *__gu_addr @@
   drivers/watchdog/sc520_wdt.c:316:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/sc520_wdt.c:316:21: sparse:     got int const *__gu_addr

vim +15 arch/sh/kernel/cpu/sh3/serial-sh770x.c

61a6976bf19a6c Paul Mundt 2011-06-14   9  
61a6976bf19a6c Paul Mundt 2011-06-14  10  static void sh770x_sci_init_pins(struct uart_port *port, unsigned int cflag)
61a6976bf19a6c Paul Mundt 2011-06-14  11  {
61a6976bf19a6c Paul Mundt 2011-06-14  12  	unsigned short data;
61a6976bf19a6c Paul Mundt 2011-06-14  13  
61a6976bf19a6c Paul Mundt 2011-06-14  14  	/* We need to set SCPCR to enable RTS/CTS */
61a6976bf19a6c Paul Mundt 2011-06-14 @15  	data = __raw_readw(SCPCR);
61a6976bf19a6c Paul Mundt 2011-06-14  16  	/* Clear out SCP7MD1,0, SCP6MD1,0, SCP4MD1,0*/
61a6976bf19a6c Paul Mundt 2011-06-14  17  	__raw_writew(data & 0x0fcf, SCPCR);
61a6976bf19a6c Paul Mundt 2011-06-14  18  
61a6976bf19a6c Paul Mundt 2011-06-14  19  	if (!(cflag & CRTSCTS)) {
61a6976bf19a6c Paul Mundt 2011-06-14  20  		/* We need to set SCPCR to enable RTS/CTS */
61a6976bf19a6c Paul Mundt 2011-06-14  21  		data = __raw_readw(SCPCR);
61a6976bf19a6c Paul Mundt 2011-06-14  22  		/* Clear out SCP7MD1,0, SCP4MD1,0,
61a6976bf19a6c Paul Mundt 2011-06-14  23  		   Set SCP6MD1,0 = {01} (output)  */
61a6976bf19a6c Paul Mundt 2011-06-14  24  		__raw_writew((data & 0x0fcf) | 0x1000, SCPCR);
61a6976bf19a6c Paul Mundt 2011-06-14  25  
61a6976bf19a6c Paul Mundt 2011-06-14  26  		data = __raw_readb(SCPDR);
61a6976bf19a6c Paul Mundt 2011-06-14  27  		/* Set /RTS2 (bit6) = 0 */
61a6976bf19a6c Paul Mundt 2011-06-14  28  		__raw_writeb(data & 0xbf, SCPDR);
61a6976bf19a6c Paul Mundt 2011-06-14  29  	}
61a6976bf19a6c Paul Mundt 2011-06-14  30  }
61a6976bf19a6c Paul Mundt 2011-06-14  31  

:::::: The code at line 15 was first introduced by commit
:::::: 61a6976bf19a6cf5dfcf37c3536665b316f22d49 serial: sh-sci: Abstract register maps.

:::::: TO: Paul Mundt <lethal@linux-sh.org>
:::::: CC: Paul Mundt <lethal@linux-sh.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: 27622 bytes --]

             reply	other threads:[~2021-02-02 14:29 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-02 14:25 kernel test robot [this message]
2021-02-02 14:25 ` arch/sh/kernel/cpu/sh3/serial-sh770x.c:15:16: sparse: sparse: incorrect type in argument 1 (different base types) 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=202102022250.K4vRmUJS-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luc.vanoostenryck@gmail.com \
    --cc=miguel.ojeda.sandonis@gmail.com \
    /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.