All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Christoph Hellwig <hch@lst.de>
Subject: drivers/watchdog/ar7_wdt.c:193:29: sparse: sparse: incorrect type in initializer (different address spaces)
Date: Sun, 10 Jul 2022 11:55:06 +0800	[thread overview]
Message-ID: <202207101149.aY0HuHPC-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   b1c428b6c3684ee8ddf4137d68b3e8d51d2a700f
commit: ddb002d6d6af12c45dd9d565cadf0f40b36b7c25 MIPS: uaccess: Reduce number of nested macros
date:   1 year, 3 months ago
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20220710/202207101149.aY0HuHPC-lkp@intel.com/config)
compiler: mips-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-39-gce1a6720-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ddb002d6d6af12c45dd9d565cadf0f40b36b7c25
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout ddb002d6d6af12c45dd9d565cadf0f40b36b7c25
        # 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=mips SHELL=/bin/bash block// drivers/

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


sparse warnings: (new ones prefixed by >>)
>> drivers/watchdog/ar7_wdt.c:193:29: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected char const [noderef] __user *__p @@     got char const * @@
   drivers/watchdog/ar7_wdt.c:193:29: sparse:     expected char const [noderef] __user *__p
   drivers/watchdog/ar7_wdt.c:193:29: sparse:     got char const *
   drivers/watchdog/ar7_wdt.c:216:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] __user *to @@     got struct watchdog_info * @@
   drivers/watchdog/ar7_wdt.c:216:35: sparse:     expected void [noderef] __user *to
   drivers/watchdog/ar7_wdt.c:216:35: sparse:     got struct watchdog_info *
>> drivers/watchdog/ar7_wdt.c:222:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int [noderef] __user *__p @@     got int * @@
   drivers/watchdog/ar7_wdt.c:222:21: sparse:     expected int [noderef] __user *__p
   drivers/watchdog/ar7_wdt.c:222:21: sparse:     got int *
>> drivers/watchdog/ar7_wdt.c:229:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int const [noderef] __user *__p @@     got int * @@
   drivers/watchdog/ar7_wdt.c:229:21: sparse:     expected int const [noderef] __user *__p
   drivers/watchdog/ar7_wdt.c:229:21: sparse:     got int *
   drivers/watchdog/ar7_wdt.c:240:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int [noderef] __user *__p @@     got int * @@
   drivers/watchdog/ar7_wdt.c:240:21: sparse:     expected int [noderef] __user *__p
   drivers/watchdog/ar7_wdt.c:240:21: sparse:     got int *
   drivers/watchdog/ar7_wdt.c:250:27: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different address spaces)) @@     expected int ( *write )( ... ) @@     got int ( * )( ... ) @@
   drivers/watchdog/ar7_wdt.c:250:27: sparse:     expected int ( *write )( ... )
   drivers/watchdog/ar7_wdt.c:250:27: sparse:     got int ( * )( ... )
   drivers/watchdog/ar7_wdt.c:270:17: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct ar7_wdt *static [toplevel] ar7_wdt @@     got void [noderef] __iomem * @@
   drivers/watchdog/ar7_wdt.c:270:17: sparse:     expected struct ar7_wdt *static [toplevel] ar7_wdt
   drivers/watchdog/ar7_wdt.c:270:17: sparse:     got void [noderef] __iomem *

vim +193 drivers/watchdog/ar7_wdt.c

c283cf2c09ca1b Matteo Croce        2007-09-20  178  
c283cf2c09ca1b Matteo Croce        2007-09-20  179  static ssize_t ar7_wdt_write(struct file *file, const char *data,
c283cf2c09ca1b Matteo Croce        2007-09-20  180  			     size_t len, loff_t *ppos)
c283cf2c09ca1b Matteo Croce        2007-09-20  181  {
c283cf2c09ca1b Matteo Croce        2007-09-20  182  	/* check for a magic close character */
c283cf2c09ca1b Matteo Croce        2007-09-20  183  	if (len) {
c283cf2c09ca1b Matteo Croce        2007-09-20  184  		size_t i;
c283cf2c09ca1b Matteo Croce        2007-09-20  185  
670d59c0ae31a8 Alan Cox            2008-08-04  186  		spin_lock(&wdt_lock);
c283cf2c09ca1b Matteo Croce        2007-09-20  187  		ar7_wdt_kick(1);
670d59c0ae31a8 Alan Cox            2008-08-04  188  		spin_unlock(&wdt_lock);
c283cf2c09ca1b Matteo Croce        2007-09-20  189  
c283cf2c09ca1b Matteo Croce        2007-09-20  190  		expect_close = 0;
c283cf2c09ca1b Matteo Croce        2007-09-20  191  		for (i = 0; i < len; ++i) {
c283cf2c09ca1b Matteo Croce        2007-09-20  192  			char c;
c283cf2c09ca1b Matteo Croce        2007-09-20 @193  			if (get_user(c, data + i))
c283cf2c09ca1b Matteo Croce        2007-09-20  194  				return -EFAULT;
c283cf2c09ca1b Matteo Croce        2007-09-20  195  			if (c == 'V')
c283cf2c09ca1b Matteo Croce        2007-09-20  196  				expect_close = 1;
c283cf2c09ca1b Matteo Croce        2007-09-20  197  		}
c283cf2c09ca1b Matteo Croce        2007-09-20  198  
c283cf2c09ca1b Matteo Croce        2007-09-20  199  	}
c283cf2c09ca1b Matteo Croce        2007-09-20  200  	return len;
c283cf2c09ca1b Matteo Croce        2007-09-20  201  }
c283cf2c09ca1b Matteo Croce        2007-09-20  202  
670d59c0ae31a8 Alan Cox            2008-08-04  203  static long ar7_wdt_ioctl(struct file *file,
c283cf2c09ca1b Matteo Croce        2007-09-20  204  					unsigned int cmd, unsigned long arg)
c283cf2c09ca1b Matteo Croce        2007-09-20  205  {
42747d712de56c Wim Van Sebroeck    2009-12-26  206  	static const struct watchdog_info ident = {
c283cf2c09ca1b Matteo Croce        2007-09-20  207  		.identity = LONGNAME,
c283cf2c09ca1b Matteo Croce        2007-09-20  208  		.firmware_version = 1,
e73a780272a46e Wim Van Sebroeck    2009-05-11  209  		.options = (WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING |
e73a780272a46e Wim Van Sebroeck    2009-05-11  210  						WDIOF_MAGICCLOSE),
c283cf2c09ca1b Matteo Croce        2007-09-20  211  	};
c283cf2c09ca1b Matteo Croce        2007-09-20  212  	int new_margin;
c283cf2c09ca1b Matteo Croce        2007-09-20  213  
c283cf2c09ca1b Matteo Croce        2007-09-20  214  	switch (cmd) {
c283cf2c09ca1b Matteo Croce        2007-09-20  215  	case WDIOC_GETSUPPORT:
c283cf2c09ca1b Matteo Croce        2007-09-20  216  		if (copy_to_user((struct watchdog_info *)arg, &ident,
c283cf2c09ca1b Matteo Croce        2007-09-20  217  				sizeof(ident)))
c283cf2c09ca1b Matteo Croce        2007-09-20  218  			return -EFAULT;
c283cf2c09ca1b Matteo Croce        2007-09-20  219  		return 0;
c283cf2c09ca1b Matteo Croce        2007-09-20  220  	case WDIOC_GETSTATUS:
c283cf2c09ca1b Matteo Croce        2007-09-20  221  	case WDIOC_GETBOOTSTATUS:
c283cf2c09ca1b Matteo Croce        2007-09-20 @222  		if (put_user(0, (int *)arg))
c283cf2c09ca1b Matteo Croce        2007-09-20  223  			return -EFAULT;
c283cf2c09ca1b Matteo Croce        2007-09-20  224  		return 0;
c283cf2c09ca1b Matteo Croce        2007-09-20  225  	case WDIOC_KEEPALIVE:
c283cf2c09ca1b Matteo Croce        2007-09-20  226  		ar7_wdt_kick(1);
c283cf2c09ca1b Matteo Croce        2007-09-20  227  		return 0;
c283cf2c09ca1b Matteo Croce        2007-09-20  228  	case WDIOC_SETTIMEOUT:
c283cf2c09ca1b Matteo Croce        2007-09-20 @229  		if (get_user(new_margin, (int *)arg))
c283cf2c09ca1b Matteo Croce        2007-09-20  230  			return -EFAULT;
c283cf2c09ca1b Matteo Croce        2007-09-20  231  		if (new_margin < 1)
c283cf2c09ca1b Matteo Croce        2007-09-20  232  			return -EINVAL;
c283cf2c09ca1b Matteo Croce        2007-09-20  233  
670d59c0ae31a8 Alan Cox            2008-08-04  234  		spin_lock(&wdt_lock);
c283cf2c09ca1b Matteo Croce        2007-09-20  235  		ar7_wdt_update_margin(new_margin);
c283cf2c09ca1b Matteo Croce        2007-09-20  236  		ar7_wdt_kick(1);
670d59c0ae31a8 Alan Cox            2008-08-04  237  		spin_unlock(&wdt_lock);
bd490f8222510d Gustavo A. R. Silva 2020-07-07  238  		fallthrough;
c283cf2c09ca1b Matteo Croce        2007-09-20  239  	case WDIOC_GETTIMEOUT:
c283cf2c09ca1b Matteo Croce        2007-09-20  240  		if (put_user(margin, (int *)arg))
c283cf2c09ca1b Matteo Croce        2007-09-20  241  			return -EFAULT;
c283cf2c09ca1b Matteo Croce        2007-09-20  242  		return 0;
0c06090c9472db Wim Van Sebroeck    2008-07-18  243  	default:
0c06090c9472db Wim Van Sebroeck    2008-07-18  244  		return -ENOTTY;
c283cf2c09ca1b Matteo Croce        2007-09-20  245  	}
c283cf2c09ca1b Matteo Croce        2007-09-20  246  }
c283cf2c09ca1b Matteo Croce        2007-09-20  247  

:::::: The code at line 193 was first introduced by commit
:::::: c283cf2c09ca1b7f1e7677bde384a8f92b1b7584 [WATCHDOG] AR7: watchdog timer

:::::: TO: Matteo Croce <technoboy85@gmail.com>
:::::: CC: Wim Van Sebroeck <wim@iguana.be>

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

             reply	other threads:[~2022-07-10  3:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-10  3:55 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-07-24  4:00 drivers/watchdog/ar7_wdt.c:193:29: sparse: sparse: incorrect type in initializer (different address spaces) kernel test robot
2020-07-24  4:00 ` 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=202207101149.aY0HuHPC-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=hch@lst.de \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tsbogend@alpha.franken.de \
    /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.