lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202101070750.4Bg5b17j-lkp@intel.com>
Date:   Thu, 7 Jan 2021 07:47:59 +0800
From:   kernel test robot <lkp@...el.com>
To:     Luc Van Oostenryck <luc.vanoostenryck@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Miguel Ojeda <miguel.ojeda.sandonis@...il.com>
Subject: drivers/watchdog/m54xx_wdt.c:104:37: sparse: sparse: incorrect type
 in argument 1 (different address spaces)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   e71ba9452f0b5b2e8dc8aa5445198cd9214a6a62
commit: e5fc436f06eef54ef512ea55a9db8eb9f2e76959 sparse: use static inline for __chk_{user,io}_ptr()
date:   4 months ago
config: m68k-randconfig-s032-20210107 (attached as .config)
compiler: m68k-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-208-g46a52ca4-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=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>


"sparse warnings: (new ones prefixed by >>)"
>> drivers/watchdog/m54xx_wdt.c:104:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const * @@
   drivers/watchdog/m54xx_wdt.c:104:37: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/m54xx_wdt.c:104:37: sparse:     got char const *
   drivers/watchdog/m54xx_wdt.c:104:37: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __user *__gu_ptr @@     got char const * @@
   drivers/watchdog/m54xx_wdt.c:104:37: sparse:     expected void const [noderef] __user *__gu_ptr
   drivers/watchdog/m54xx_wdt.c:104:37: sparse:     got char const *
   drivers/watchdog/m54xx_wdt.c:129:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] __user *to @@     got struct watchdog_info * @@
   drivers/watchdog/m54xx_wdt.c:129:37: sparse:     expected void [noderef] __user *to
   drivers/watchdog/m54xx_wdt.c:129:37: sparse:     got struct watchdog_info *
>> drivers/watchdog/m54xx_wdt.c:134:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int * @@
   drivers/watchdog/m54xx_wdt.c:134:23: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/m54xx_wdt.c:134:23: sparse:     got int *
   drivers/watchdog/m54xx_wdt.c:134:23: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __user *__pu_ptr @@     got int * @@
   drivers/watchdog/m54xx_wdt.c:134:23: sparse:     expected void const [noderef] __user *__pu_ptr
   drivers/watchdog/m54xx_wdt.c:134:23: sparse:     got int *
   drivers/watchdog/m54xx_wdt.c:138:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int * @@
   drivers/watchdog/m54xx_wdt.c:138:23: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/m54xx_wdt.c:138:23: sparse:     got int *
   drivers/watchdog/m54xx_wdt.c:138:23: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __user *__pu_ptr @@     got int * @@
   drivers/watchdog/m54xx_wdt.c:138:23: sparse:     expected void const [noderef] __user *__pu_ptr
   drivers/watchdog/m54xx_wdt.c:138:23: sparse:     got int *
   drivers/watchdog/m54xx_wdt.c:147:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int * @@
   drivers/watchdog/m54xx_wdt.c:147:23: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/m54xx_wdt.c:147:23: sparse:     got int *
   drivers/watchdog/m54xx_wdt.c:147:23: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __user *__gu_ptr @@     got int * @@
   drivers/watchdog/m54xx_wdt.c:147:23: sparse:     expected void const [noderef] __user *__gu_ptr
   drivers/watchdog/m54xx_wdt.c:147:23: sparse:     got int *
   drivers/watchdog/m54xx_wdt.c:161:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int * @@
   drivers/watchdog/m54xx_wdt.c:161:23: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/watchdog/m54xx_wdt.c:161:23: sparse:     got int *
   drivers/watchdog/m54xx_wdt.c:161:23: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __user *__pu_ptr @@     got int * @@
   drivers/watchdog/m54xx_wdt.c:161:23: sparse:     expected void const [noderef] __user *__pu_ptr
   drivers/watchdog/m54xx_wdt.c:161:23: sparse:     got int *
   drivers/watchdog/m54xx_wdt.c:185:27: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different address spaces)) @@     expected int ( *write )( ... ) @@     got int ( * )( ... ) @@
   drivers/watchdog/m54xx_wdt.c:185:27: sparse:     expected int ( *write )( ... )
   drivers/watchdog/m54xx_wdt.c:185:27: sparse:     got int ( * )( ... )

vim +104 drivers/watchdog/m54xx_wdt.c

88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03   91  
9b9c63ff1f3b09a drivers/watchdog/m548x_wdt.c Philippe De Muyter  2011-01-22   92  static ssize_t m54xx_wdt_write(struct file *file, const char *data,
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03   93  						size_t len, loff_t *ppos)
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03   94  {
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03   95  	if (len) {
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03   96  		if (!nowayout) {
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03   97  			size_t i;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03   98  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03   99  			clear_bit(WDT_OK_TO_CLOSE, &wdt_status);
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  100  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  101  			for (i = 0; i != len; i++) {
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  102  				char c;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  103  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03 @104  				if (get_user(c, data + i))
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  105  					return -EFAULT;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  106  				if (c == 'V')
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  107  					set_bit(WDT_OK_TO_CLOSE, &wdt_status);
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  108  			}
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  109  		}
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  110  		wdt_keepalive();
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  111  	}
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  112  	return len;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  113  }
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  114  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  115  static const struct watchdog_info ident = {
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  116  	.options	= WDIOF_MAGICCLOSE | WDIOF_SETTIMEOUT |
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  117  				WDIOF_KEEPALIVEPING,
9b9c63ff1f3b09a drivers/watchdog/m548x_wdt.c Philippe De Muyter  2011-01-22  118  	.identity	= "Coldfire M54xx Watchdog",
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  119  };
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  120  
9b9c63ff1f3b09a drivers/watchdog/m548x_wdt.c Philippe De Muyter  2011-01-22  121  static long m54xx_wdt_ioctl(struct file *file, unsigned int cmd,
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  122  							 unsigned long arg)
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  123  {
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  124  	int ret = -ENOTTY;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  125  	int time;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  126  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  127  	switch (cmd) {
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  128  	case WDIOC_GETSUPPORT:
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  129  		ret = copy_to_user((struct watchdog_info *)arg, &ident,
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  130  				   sizeof(ident)) ? -EFAULT : 0;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  131  		break;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  132  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  133  	case WDIOC_GETSTATUS:
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03 @134  		ret = put_user(0, (int *)arg);
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  135  		break;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  136  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  137  	case WDIOC_GETBOOTSTATUS:
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  138  		ret = put_user(0, (int *)arg);
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  139  		break;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  140  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  141  	case WDIOC_KEEPALIVE:
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  142  		wdt_keepalive();
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  143  		ret = 0;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  144  		break;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  145  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  146  	case WDIOC_SETTIMEOUT:
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  147  		ret = get_user(time, (int *)arg);
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  148  		if (ret)
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  149  			break;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  150  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  151  		if (time <= 0 || time > 30) {
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  152  			ret = -EINVAL;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  153  			break;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  154  		}
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  155  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  156  		heartbeat = time;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  157  		wdt_enable();
bd490f8222510de drivers/watchdog/m54xx_wdt.c Gustavo A. R. Silva 2020-07-07  158  		fallthrough;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  159  
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  160  	case WDIOC_GETTIMEOUT:
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  161  		ret = put_user(heartbeat, (int *)arg);
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  162  		break;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  163  	}
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  164  	return ret;
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  165  }
88cce427626070f drivers/watchdog/m548x_wdt.c Philippe De Muyter  2010-11-03  166  

:::::: The code at line 104 was first introduced by commit
:::::: 88cce427626070f7d7eb33994e3ff7b4db3292c5 watchdog: Add MCF548x watchdog driver.

:::::: TO: Philippe De Muyter <phdm@...qel.be>
:::::: CC: Wim Van Sebroeck <wim@...ana.be>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (25478 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ