All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 13026/14955] drivers/staging/comedi/comedi_fops.c:2954:23: sparse: sparse: incorrect type in assignment (different address spaces)
@ 2020-06-03  6:30 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-06-03  6:30 UTC (permalink / raw
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   0e21d4620dd047da7952f44a2e1ac777ded2d57e
commit: bac42fb21259783cb748ae54227a5e755340a396 [13026/14955] comedi: get rid of compat_alloc_user_space() mess in COMEDI_CMD{,TEST} compat
config: powerpc64-randconfig-s032-20200602 (attached as .config)
compiler: powerpc64le-linux-gcc (GCC) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-244-g0ee050a8-dirty
        git checkout bac42fb21259783cb748ae54227a5e755340a396
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=powerpc64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

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


sparse warnings: (new ones prefixed by >>)

>> drivers/staging/comedi/comedi_fops.c:2954:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected unsigned int *chanlist @@     got void [noderef] <asn:1> * @@
>> drivers/staging/comedi/comedi_fops.c:2954:23: sparse:     expected unsigned int *chanlist
>> drivers/staging/comedi/comedi_fops.c:2954:23: sparse:     got void [noderef] <asn:1> *
>> drivers/staging/comedi/comedi_fops.c:2981:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *uptr @@     got unsigned int *chanlist @@
>> drivers/staging/comedi/comedi_fops.c:2981:41: sparse:     expected void [noderef] <asn:1> *uptr
>> drivers/staging/comedi/comedi_fops.c:2981:41: sparse:     got unsigned int *chanlist

vim +2954 drivers/staging/comedi/comedi_fops.c

  2932	
  2933	/* Copy 32-bit cmd structure to native cmd structure. */
  2934	static int get_compat_cmd(struct comedi_cmd *cmd,
  2935				  struct comedi32_cmd_struct __user *cmd32)
  2936	{
  2937		struct comedi32_cmd_struct v32;
  2938	
  2939		if (copy_from_user(&v32, cmd32, sizeof(v32)))
  2940			return -EFAULT;
  2941	
  2942		cmd->subdev = v32.subdev;
  2943		cmd->flags = v32.flags;
  2944		cmd->start_src = v32.start_src;
  2945		cmd->start_arg = v32.start_arg;
  2946		cmd->scan_begin_src = v32.scan_begin_src;
  2947		cmd->scan_begin_arg = v32.scan_begin_arg;
  2948		cmd->convert_src = v32.convert_src;
  2949		cmd->convert_arg = v32.convert_arg;
  2950		cmd->scan_end_src = v32.scan_end_src;
  2951		cmd->scan_end_arg = v32.scan_end_arg;
  2952		cmd->stop_src = v32.stop_src;
  2953		cmd->stop_arg = v32.stop_arg;
> 2954		cmd->chanlist = compat_ptr(v32.chanlist);
  2955		cmd->chanlist_len = v32.chanlist_len;
  2956		cmd->data = compat_ptr(v32.data);
  2957		cmd->data_len = v32.data_len;
  2958		return 0;
  2959	}
  2960	
  2961	/* Copy native cmd structure to 32-bit cmd structure. */
  2962	static int put_compat_cmd(struct comedi32_cmd_struct __user *cmd32,
  2963				  struct comedi_cmd *cmd)
  2964	{
  2965		struct comedi32_cmd_struct v32;
  2966	
  2967		memset(&v32, 0, sizeof(v32));
  2968		v32.subdev = cmd->subdev;
  2969		v32.flags = cmd->flags;
  2970		v32.start_src = cmd->start_src;
  2971		v32.start_arg = cmd->start_arg;
  2972		v32.scan_begin_src = cmd->scan_begin_src;
  2973		v32.scan_begin_arg = cmd->scan_begin_arg;
  2974		v32.convert_src = cmd->convert_src;
  2975		v32.convert_arg = cmd->convert_arg;
  2976		v32.scan_end_src = cmd->scan_end_src;
  2977		v32.scan_end_arg = cmd->scan_end_arg;
  2978		v32.stop_src = cmd->stop_src;
  2979		v32.stop_arg = cmd->stop_arg;
  2980		/* Assume chanlist pointer is unchanged. */
> 2981		v32.chanlist = ptr_to_compat(cmd->chanlist);
  2982		v32.chanlist_len = cmd->chanlist_len;
  2983		v32.data = ptr_to_compat(cmd->data);
  2984		v32.data_len = cmd->data_len;
  2985		return copy_to_user(cmd32, &v32, sizeof(v32));
  2986	}
  2987	

---
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: 29745 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-06-03  6:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-03  6:30 [linux-next:master 13026/14955] drivers/staging/comedi/comedi_fops.c:2954:23: sparse: sparse: incorrect type in assignment (different address spaces) kbuild test robot

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.