All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 3942/14131] drivers/cdrom/cdrom.c:3597:42: sparse: got void [noderef] <asn:1> *buffer
@ 2020-06-01 12:12 kbuild test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kbuild test robot @ 2020-06-01 12:12 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
TO: "Christoph, Hellwig," <hch@lst.de>
CC: Al Viro <viro@zeniv.linux.org.uk>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   e7b08814b16b80a0bf76eeca16317f8c2ed23b8c
commit: 32927393dc1ccd60fb2bdc05b9e8e88753761469 [3942/14131] sysctl: pass kernel pointers to ->proc_handler
:::::: branch date: 3 days ago
:::::: commit date: 5 weeks ago
config: i386-randconfig-s001-20200601 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-243-gc100a7ab-dirty
        git checkout 32927393dc1ccd60fb2bdc05b9e8e88753761469
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=i386 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/cdrom/cdrom.c:3597:42: sparse: sparse: incorrect type in argument 3 (different address spaces) @@     expected void * @@     got void [noderef] <asn:1> *buffer @@
   drivers/cdrom/cdrom.c:3597:42: sparse:     expected void *
>> drivers/cdrom/cdrom.c:3597:42: sparse:     got void [noderef] <asn:1> *buffer
   drivers/cdrom/cdrom.c:3665:35: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@     expected int ( [usertype] *proc_handler )( ... ) @@     got int ( * )( ... ) @@
   drivers/cdrom/cdrom.c:3665:35: sparse:     expected int ( [usertype] *proc_handler )( ... )
>> drivers/cdrom/cdrom.c:3665:35: sparse:     got int ( * )( ... )

# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=32927393dc1ccd60fb2bdc05b9e8e88753761469
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git remote update linux-next
git checkout 32927393dc1ccd60fb2bdc05b9e8e88753761469
vim +3597 drivers/cdrom/cdrom.c

554988d6fe3697 Dave Young        2007-06-19  3519  
90a3b89e00658b Joe Perches       2014-06-06  3520  static int cdrom_sysctl_info(struct ctl_table *ctl, int write,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3521                             void __user *buffer, size_t *lenp, loff_t *ppos)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3522  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3523  	int pos;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3524  	char *info = cdrom_sysctl_settings.info;
554988d6fe3697 Dave Young        2007-06-19  3525  	const int max_size = sizeof(cdrom_sysctl_settings.info);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3526  	
^1da177e4c3f41 Linus Torvalds    2005-04-16  3527  	if (!*lenp || (*ppos && !write)) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3528  		*lenp = 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3529  		return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3530  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3531  
554988d6fe3697 Dave Young        2007-06-19  3532  	mutex_lock(&cdrom_mutex);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3533  
554988d6fe3697 Dave Young        2007-06-19  3534  	pos = sprintf(info, "CD-ROM information, " VERSION "\n");
^1da177e4c3f41 Linus Torvalds    2005-04-16  3535  	
554988d6fe3697 Dave Young        2007-06-19  3536  	if (cdrom_print_info("\ndrive name:\t", 0, info, &pos, CTL_NAME))
554988d6fe3697 Dave Young        2007-06-19  3537  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3538  	if (cdrom_print_info("\ndrive speed:\t", 0, info, &pos, CTL_SPEED))
554988d6fe3697 Dave Young        2007-06-19  3539  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3540  	if (cdrom_print_info("\ndrive # of slots:", 0, info, &pos, CTL_SLOTS))
554988d6fe3697 Dave Young        2007-06-19  3541  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3542  	if (cdrom_print_info("\nCan close tray:\t",
554988d6fe3697 Dave Young        2007-06-19  3543  				CDC_CLOSE_TRAY, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3544  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3545  	if (cdrom_print_info("\nCan open tray:\t",
554988d6fe3697 Dave Young        2007-06-19  3546  				CDC_OPEN_TRAY, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3547  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3548  	if (cdrom_print_info("\nCan lock tray:\t",
554988d6fe3697 Dave Young        2007-06-19  3549  				CDC_LOCK, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3550  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3551  	if (cdrom_print_info("\nCan change speed:",
554988d6fe3697 Dave Young        2007-06-19  3552  				CDC_SELECT_SPEED, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3553  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3554  	if (cdrom_print_info("\nCan select disk:",
554988d6fe3697 Dave Young        2007-06-19  3555  				CDC_SELECT_DISC, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3556  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3557  	if (cdrom_print_info("\nCan read multisession:",
554988d6fe3697 Dave Young        2007-06-19  3558  				CDC_MULTI_SESSION, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3559  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3560  	if (cdrom_print_info("\nCan read MCN:\t",
554988d6fe3697 Dave Young        2007-06-19  3561  				CDC_MCN, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3562  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3563  	if (cdrom_print_info("\nReports media changed:",
554988d6fe3697 Dave Young        2007-06-19  3564  				CDC_MEDIA_CHANGED, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3565  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3566  	if (cdrom_print_info("\nCan play audio:\t",
554988d6fe3697 Dave Young        2007-06-19  3567  				CDC_PLAY_AUDIO, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3568  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3569  	if (cdrom_print_info("\nCan write CD-R:\t",
554988d6fe3697 Dave Young        2007-06-19  3570  				CDC_CD_R, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3571  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3572  	if (cdrom_print_info("\nCan write CD-RW:",
554988d6fe3697 Dave Young        2007-06-19  3573  				CDC_CD_RW, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3574  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3575  	if (cdrom_print_info("\nCan read DVD:\t",
554988d6fe3697 Dave Young        2007-06-19  3576  				CDC_DVD, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3577  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3578  	if (cdrom_print_info("\nCan write DVD-R:",
554988d6fe3697 Dave Young        2007-06-19  3579  				CDC_DVD_R, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3580  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3581  	if (cdrom_print_info("\nCan write DVD-RAM:",
554988d6fe3697 Dave Young        2007-06-19  3582  				CDC_DVD_RAM, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3583  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3584  	if (cdrom_print_info("\nCan read MRW:\t",
554988d6fe3697 Dave Young        2007-06-19  3585  				CDC_MRW, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3586  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3587  	if (cdrom_print_info("\nCan write MRW:\t",
554988d6fe3697 Dave Young        2007-06-19  3588  				CDC_MRW_W, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3589  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3590  	if (cdrom_print_info("\nCan write RAM:\t",
554988d6fe3697 Dave Young        2007-06-19  3591  				CDC_RAM, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3592  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3593  	if (!scnprintf(info + pos, max_size - pos, "\n\n"))
554988d6fe3697 Dave Young        2007-06-19  3594  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3595  doit:
554988d6fe3697 Dave Young        2007-06-19  3596  	mutex_unlock(&cdrom_mutex);
8d65af789f3e2c Alexey Dobriyan   2009-09-23 @3597  	return proc_dostring(ctl, write, buffer, lenp, ppos);
554988d6fe3697 Dave Young        2007-06-19  3598  done:
e597cd09f711b2 Joe Perches       2010-07-01  3599  	pr_info("info buffer too small\n");
554988d6fe3697 Dave Young        2007-06-19  3600  	goto doit;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3601  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  3602  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3603  /* Unfortunately, per device settings are not implemented through
^1da177e4c3f41 Linus Torvalds    2005-04-16  3604     procfs/sysctl yet. When they are, this will naturally disappear. For now
^1da177e4c3f41 Linus Torvalds    2005-04-16  3605     just update all drives. Later this will become the template on which
^1da177e4c3f41 Linus Torvalds    2005-04-16  3606     new registered drives will be based. */
^1da177e4c3f41 Linus Torvalds    2005-04-16  3607  static void cdrom_update_settings(void)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3608  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3609  	struct cdrom_device_info *cdi;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3610  
032d8d90ba23e1 Akinobu Mita      2008-03-26  3611  	mutex_lock(&cdrom_mutex);
7fd097d42b90af Akinobu Mita      2008-03-26  3612  	list_for_each_entry(cdi, &cdrom_list, list) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3613  		if (autoclose && CDROM_CAN(CDC_CLOSE_TRAY))
^1da177e4c3f41 Linus Torvalds    2005-04-16  3614  			cdi->options |= CDO_AUTO_CLOSE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3615  		else if (!autoclose)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3616  			cdi->options &= ~CDO_AUTO_CLOSE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3617  		if (autoeject && CDROM_CAN(CDC_OPEN_TRAY))
^1da177e4c3f41 Linus Torvalds    2005-04-16  3618  			cdi->options |= CDO_AUTO_EJECT;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3619  		else if (!autoeject)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3620  			cdi->options &= ~CDO_AUTO_EJECT;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3621  		if (lockdoor && CDROM_CAN(CDC_LOCK))
^1da177e4c3f41 Linus Torvalds    2005-04-16  3622  			cdi->options |= CDO_LOCK;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3623  		else if (!lockdoor)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3624  			cdi->options &= ~CDO_LOCK;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3625  		if (check_media_type)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3626  			cdi->options |= CDO_CHECK_TYPE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3627  		else
^1da177e4c3f41 Linus Torvalds    2005-04-16  3628  			cdi->options &= ~CDO_CHECK_TYPE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3629  	}
032d8d90ba23e1 Akinobu Mita      2008-03-26  3630  	mutex_unlock(&cdrom_mutex);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3631  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  3632  
90a3b89e00658b Joe Perches       2014-06-06  3633  static int cdrom_sysctl_handler(struct ctl_table *ctl, int write,
32927393dc1ccd Christoph Hellwig 2020-04-24  3634  				void *buffer, size_t *lenp, loff_t *ppos)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3635  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3636  	int ret;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3637  	
8d65af789f3e2c Alexey Dobriyan   2009-09-23  3638  	ret = proc_dointvec(ctl, write, buffer, lenp, ppos);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3639  
06489b4eec8322 Eric W. Biederman 2007-10-18  3640  	if (write) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3641  	
^1da177e4c3f41 Linus Torvalds    2005-04-16  3642  		/* we only care for 1 or 0. */
06489b4eec8322 Eric W. Biederman 2007-10-18  3643  		autoclose        = !!cdrom_sysctl_settings.autoclose;
06489b4eec8322 Eric W. Biederman 2007-10-18  3644  		autoeject        = !!cdrom_sysctl_settings.autoeject;
06489b4eec8322 Eric W. Biederman 2007-10-18  3645  		debug	         = !!cdrom_sysctl_settings.debug;
06489b4eec8322 Eric W. Biederman 2007-10-18  3646  		lockdoor         = !!cdrom_sysctl_settings.lock;
06489b4eec8322 Eric W. Biederman 2007-10-18  3647  		check_media_type = !!cdrom_sysctl_settings.check;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3648  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3649  		/* update the option flags according to the changes. we
^1da177e4c3f41 Linus Torvalds    2005-04-16  3650  		   don't have per device options through sysctl yet,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3651  		   but we will have and then this will disappear. */
^1da177e4c3f41 Linus Torvalds    2005-04-16  3652  		cdrom_update_settings();
^1da177e4c3f41 Linus Torvalds    2005-04-16  3653  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3654  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3655          return ret;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3656  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  3657  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3658  /* Place files in /proc/sys/dev/cdrom */
90a3b89e00658b Joe Perches       2014-06-06  3659  static struct ctl_table cdrom_table[] = {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3660  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3661  		.procname	= "info",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3662  		.data		= &cdrom_sysctl_settings.info, 
^1da177e4c3f41 Linus Torvalds    2005-04-16  3663  		.maxlen		= CDROM_STR_SIZE,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3664  		.mode		= 0444,
6d4561110a3e9f Eric W. Biederman 2009-11-16 @3665  		.proc_handler	= cdrom_sysctl_info,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3666  	},
^1da177e4c3f41 Linus Torvalds    2005-04-16  3667  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3668  		.procname	= "autoclose",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3669  		.data		= &cdrom_sysctl_settings.autoclose,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3670  		.maxlen		= sizeof(int),
^1da177e4c3f41 Linus Torvalds    2005-04-16  3671  		.mode		= 0644,
6d4561110a3e9f Eric W. Biederman 2009-11-16  3672  		.proc_handler	= cdrom_sysctl_handler,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3673  	},
^1da177e4c3f41 Linus Torvalds    2005-04-16  3674  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3675  		.procname	= "autoeject",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3676  		.data		= &cdrom_sysctl_settings.autoeject,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3677  		.maxlen		= sizeof(int),
^1da177e4c3f41 Linus Torvalds    2005-04-16  3678  		.mode		= 0644,
6d4561110a3e9f Eric W. Biederman 2009-11-16  3679  		.proc_handler	= cdrom_sysctl_handler,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3680  	},
^1da177e4c3f41 Linus Torvalds    2005-04-16  3681  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3682  		.procname	= "debug",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3683  		.data		= &cdrom_sysctl_settings.debug,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3684  		.maxlen		= sizeof(int),
^1da177e4c3f41 Linus Torvalds    2005-04-16  3685  		.mode		= 0644,
6d4561110a3e9f Eric W. Biederman 2009-11-16  3686  		.proc_handler	= cdrom_sysctl_handler,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3687  	},
^1da177e4c3f41 Linus Torvalds    2005-04-16  3688  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3689  		.procname	= "lock",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3690  		.data		= &cdrom_sysctl_settings.lock,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3691  		.maxlen		= sizeof(int),
^1da177e4c3f41 Linus Torvalds    2005-04-16  3692  		.mode		= 0644,
6d4561110a3e9f Eric W. Biederman 2009-11-16  3693  		.proc_handler	= cdrom_sysctl_handler,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3694  	},
^1da177e4c3f41 Linus Torvalds    2005-04-16  3695  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3696  		.procname	= "check_media",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3697  		.data		= &cdrom_sysctl_settings.check,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3698  		.maxlen		= sizeof(int),
^1da177e4c3f41 Linus Torvalds    2005-04-16  3699  		.mode		= 0644,
6d4561110a3e9f Eric W. Biederman 2009-11-16  3700  		.proc_handler	= cdrom_sysctl_handler
^1da177e4c3f41 Linus Torvalds    2005-04-16  3701  	},
894d2491153a9f Eric W. Biederman 2009-11-05  3702  	{ }
^1da177e4c3f41 Linus Torvalds    2005-04-16  3703  };
^1da177e4c3f41 Linus Torvalds    2005-04-16  3704  

:::::: The code at line 3597 was first introduced by commit
:::::: 8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38 sysctl: remove "struct file *" argument of ->proc_handler

:::::: TO: Alexey Dobriyan <adobriyan@gmail.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.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: 33000 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [linux-next:master 3942/14131] drivers/cdrom/cdrom.c:3597:42: sparse: got void [noderef] <asn:1> *buffer
@ 2020-06-09 15:07 kbuild test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kbuild test robot @ 2020-06-09 15:07 UTC (permalink / raw)
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   e7b08814b16b80a0bf76eeca16317f8c2ed23b8c
commit: 32927393dc1ccd60fb2bdc05b9e8e88753761469 [3942/14131] sysctl: pass kernel pointers to ->proc_handler
:::::: branch date: 3 days ago
:::::: commit date: 5 weeks ago
config: i386-randconfig-s001-20200601 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-243-gc100a7ab-dirty
        git checkout 32927393dc1ccd60fb2bdc05b9e8e88753761469
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=i386 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/cdrom/cdrom.c:3597:42: sparse: sparse: incorrect type in argument 3 (different address spaces) @@     expected void * @@     got void [noderef] <asn:1> *buffer @@
   drivers/cdrom/cdrom.c:3597:42: sparse:     expected void *
>> drivers/cdrom/cdrom.c:3597:42: sparse:     got void [noderef] <asn:1> *buffer
   drivers/cdrom/cdrom.c:3665:35: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@     expected int ( [usertype] *proc_handler )( ... ) @@     got int ( * )( ... ) @@
   drivers/cdrom/cdrom.c:3665:35: sparse:     expected int ( [usertype] *proc_handler )( ... )
>> drivers/cdrom/cdrom.c:3665:35: sparse:     got int ( * )( ... )

# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=32927393dc1ccd60fb2bdc05b9e8e88753761469
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git remote update linux-next
git checkout 32927393dc1ccd60fb2bdc05b9e8e88753761469
vim +3597 drivers/cdrom/cdrom.c

554988d6fe3697 Dave Young        2007-06-19  3519  
90a3b89e00658b Joe Perches       2014-06-06  3520  static int cdrom_sysctl_info(struct ctl_table *ctl, int write,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3521                             void __user *buffer, size_t *lenp, loff_t *ppos)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3522  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3523  	int pos;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3524  	char *info = cdrom_sysctl_settings.info;
554988d6fe3697 Dave Young        2007-06-19  3525  	const int max_size = sizeof(cdrom_sysctl_settings.info);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3526  	
^1da177e4c3f41 Linus Torvalds    2005-04-16  3527  	if (!*lenp || (*ppos && !write)) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3528  		*lenp = 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3529  		return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3530  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3531  
554988d6fe3697 Dave Young        2007-06-19  3532  	mutex_lock(&cdrom_mutex);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3533  
554988d6fe3697 Dave Young        2007-06-19  3534  	pos = sprintf(info, "CD-ROM information, " VERSION "\n");
^1da177e4c3f41 Linus Torvalds    2005-04-16  3535  	
554988d6fe3697 Dave Young        2007-06-19  3536  	if (cdrom_print_info("\ndrive name:\t", 0, info, &pos, CTL_NAME))
554988d6fe3697 Dave Young        2007-06-19  3537  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3538  	if (cdrom_print_info("\ndrive speed:\t", 0, info, &pos, CTL_SPEED))
554988d6fe3697 Dave Young        2007-06-19  3539  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3540  	if (cdrom_print_info("\ndrive # of slots:", 0, info, &pos, CTL_SLOTS))
554988d6fe3697 Dave Young        2007-06-19  3541  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3542  	if (cdrom_print_info("\nCan close tray:\t",
554988d6fe3697 Dave Young        2007-06-19  3543  				CDC_CLOSE_TRAY, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3544  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3545  	if (cdrom_print_info("\nCan open tray:\t",
554988d6fe3697 Dave Young        2007-06-19  3546  				CDC_OPEN_TRAY, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3547  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3548  	if (cdrom_print_info("\nCan lock tray:\t",
554988d6fe3697 Dave Young        2007-06-19  3549  				CDC_LOCK, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3550  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3551  	if (cdrom_print_info("\nCan change speed:",
554988d6fe3697 Dave Young        2007-06-19  3552  				CDC_SELECT_SPEED, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3553  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3554  	if (cdrom_print_info("\nCan select disk:",
554988d6fe3697 Dave Young        2007-06-19  3555  				CDC_SELECT_DISC, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3556  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3557  	if (cdrom_print_info("\nCan read multisession:",
554988d6fe3697 Dave Young        2007-06-19  3558  				CDC_MULTI_SESSION, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3559  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3560  	if (cdrom_print_info("\nCan read MCN:\t",
554988d6fe3697 Dave Young        2007-06-19  3561  				CDC_MCN, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3562  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3563  	if (cdrom_print_info("\nReports media changed:",
554988d6fe3697 Dave Young        2007-06-19  3564  				CDC_MEDIA_CHANGED, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3565  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3566  	if (cdrom_print_info("\nCan play audio:\t",
554988d6fe3697 Dave Young        2007-06-19  3567  				CDC_PLAY_AUDIO, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3568  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3569  	if (cdrom_print_info("\nCan write CD-R:\t",
554988d6fe3697 Dave Young        2007-06-19  3570  				CDC_CD_R, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3571  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3572  	if (cdrom_print_info("\nCan write CD-RW:",
554988d6fe3697 Dave Young        2007-06-19  3573  				CDC_CD_RW, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3574  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3575  	if (cdrom_print_info("\nCan read DVD:\t",
554988d6fe3697 Dave Young        2007-06-19  3576  				CDC_DVD, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3577  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3578  	if (cdrom_print_info("\nCan write DVD-R:",
554988d6fe3697 Dave Young        2007-06-19  3579  				CDC_DVD_R, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3580  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3581  	if (cdrom_print_info("\nCan write DVD-RAM:",
554988d6fe3697 Dave Young        2007-06-19  3582  				CDC_DVD_RAM, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3583  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3584  	if (cdrom_print_info("\nCan read MRW:\t",
554988d6fe3697 Dave Young        2007-06-19  3585  				CDC_MRW, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3586  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3587  	if (cdrom_print_info("\nCan write MRW:\t",
554988d6fe3697 Dave Young        2007-06-19  3588  				CDC_MRW_W, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3589  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3590  	if (cdrom_print_info("\nCan write RAM:\t",
554988d6fe3697 Dave Young        2007-06-19  3591  				CDC_RAM, info, &pos, CTL_CAPABILITY))
554988d6fe3697 Dave Young        2007-06-19  3592  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3593  	if (!scnprintf(info + pos, max_size - pos, "\n\n"))
554988d6fe3697 Dave Young        2007-06-19  3594  		goto done;
554988d6fe3697 Dave Young        2007-06-19  3595  doit:
554988d6fe3697 Dave Young        2007-06-19  3596  	mutex_unlock(&cdrom_mutex);
8d65af789f3e2c Alexey Dobriyan   2009-09-23 @3597  	return proc_dostring(ctl, write, buffer, lenp, ppos);
554988d6fe3697 Dave Young        2007-06-19  3598  done:
e597cd09f711b2 Joe Perches       2010-07-01  3599  	pr_info("info buffer too small\n");
554988d6fe3697 Dave Young        2007-06-19  3600  	goto doit;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3601  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  3602  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3603  /* Unfortunately, per device settings are not implemented through
^1da177e4c3f41 Linus Torvalds    2005-04-16  3604     procfs/sysctl yet. When they are, this will naturally disappear. For now
^1da177e4c3f41 Linus Torvalds    2005-04-16  3605     just update all drives. Later this will become the template on which
^1da177e4c3f41 Linus Torvalds    2005-04-16  3606     new registered drives will be based. */
^1da177e4c3f41 Linus Torvalds    2005-04-16  3607  static void cdrom_update_settings(void)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3608  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3609  	struct cdrom_device_info *cdi;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3610  
032d8d90ba23e1 Akinobu Mita      2008-03-26  3611  	mutex_lock(&cdrom_mutex);
7fd097d42b90af Akinobu Mita      2008-03-26  3612  	list_for_each_entry(cdi, &cdrom_list, list) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3613  		if (autoclose && CDROM_CAN(CDC_CLOSE_TRAY))
^1da177e4c3f41 Linus Torvalds    2005-04-16  3614  			cdi->options |= CDO_AUTO_CLOSE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3615  		else if (!autoclose)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3616  			cdi->options &= ~CDO_AUTO_CLOSE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3617  		if (autoeject && CDROM_CAN(CDC_OPEN_TRAY))
^1da177e4c3f41 Linus Torvalds    2005-04-16  3618  			cdi->options |= CDO_AUTO_EJECT;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3619  		else if (!autoeject)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3620  			cdi->options &= ~CDO_AUTO_EJECT;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3621  		if (lockdoor && CDROM_CAN(CDC_LOCK))
^1da177e4c3f41 Linus Torvalds    2005-04-16  3622  			cdi->options |= CDO_LOCK;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3623  		else if (!lockdoor)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3624  			cdi->options &= ~CDO_LOCK;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3625  		if (check_media_type)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3626  			cdi->options |= CDO_CHECK_TYPE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3627  		else
^1da177e4c3f41 Linus Torvalds    2005-04-16  3628  			cdi->options &= ~CDO_CHECK_TYPE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3629  	}
032d8d90ba23e1 Akinobu Mita      2008-03-26  3630  	mutex_unlock(&cdrom_mutex);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3631  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  3632  
90a3b89e00658b Joe Perches       2014-06-06  3633  static int cdrom_sysctl_handler(struct ctl_table *ctl, int write,
32927393dc1ccd Christoph Hellwig 2020-04-24  3634  				void *buffer, size_t *lenp, loff_t *ppos)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3635  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3636  	int ret;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3637  	
8d65af789f3e2c Alexey Dobriyan   2009-09-23  3638  	ret = proc_dointvec(ctl, write, buffer, lenp, ppos);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3639  
06489b4eec8322 Eric W. Biederman 2007-10-18  3640  	if (write) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3641  	
^1da177e4c3f41 Linus Torvalds    2005-04-16  3642  		/* we only care for 1 or 0. */
06489b4eec8322 Eric W. Biederman 2007-10-18  3643  		autoclose        = !!cdrom_sysctl_settings.autoclose;
06489b4eec8322 Eric W. Biederman 2007-10-18  3644  		autoeject        = !!cdrom_sysctl_settings.autoeject;
06489b4eec8322 Eric W. Biederman 2007-10-18  3645  		debug	         = !!cdrom_sysctl_settings.debug;
06489b4eec8322 Eric W. Biederman 2007-10-18  3646  		lockdoor         = !!cdrom_sysctl_settings.lock;
06489b4eec8322 Eric W. Biederman 2007-10-18  3647  		check_media_type = !!cdrom_sysctl_settings.check;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3648  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3649  		/* update the option flags according to the changes. we
^1da177e4c3f41 Linus Torvalds    2005-04-16  3650  		   don't have per device options through sysctl yet,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3651  		   but we will have and then this will disappear. */
^1da177e4c3f41 Linus Torvalds    2005-04-16  3652  		cdrom_update_settings();
^1da177e4c3f41 Linus Torvalds    2005-04-16  3653  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3654  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3655          return ret;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3656  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  3657  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3658  /* Place files in /proc/sys/dev/cdrom */
90a3b89e00658b Joe Perches       2014-06-06  3659  static struct ctl_table cdrom_table[] = {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3660  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3661  		.procname	= "info",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3662  		.data		= &cdrom_sysctl_settings.info, 
^1da177e4c3f41 Linus Torvalds    2005-04-16  3663  		.maxlen		= CDROM_STR_SIZE,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3664  		.mode		= 0444,
6d4561110a3e9f Eric W. Biederman 2009-11-16 @3665  		.proc_handler	= cdrom_sysctl_info,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3666  	},
^1da177e4c3f41 Linus Torvalds    2005-04-16  3667  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3668  		.procname	= "autoclose",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3669  		.data		= &cdrom_sysctl_settings.autoclose,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3670  		.maxlen		= sizeof(int),
^1da177e4c3f41 Linus Torvalds    2005-04-16  3671  		.mode		= 0644,
6d4561110a3e9f Eric W. Biederman 2009-11-16  3672  		.proc_handler	= cdrom_sysctl_handler,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3673  	},
^1da177e4c3f41 Linus Torvalds    2005-04-16  3674  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3675  		.procname	= "autoeject",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3676  		.data		= &cdrom_sysctl_settings.autoeject,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3677  		.maxlen		= sizeof(int),
^1da177e4c3f41 Linus Torvalds    2005-04-16  3678  		.mode		= 0644,
6d4561110a3e9f Eric W. Biederman 2009-11-16  3679  		.proc_handler	= cdrom_sysctl_handler,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3680  	},
^1da177e4c3f41 Linus Torvalds    2005-04-16  3681  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3682  		.procname	= "debug",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3683  		.data		= &cdrom_sysctl_settings.debug,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3684  		.maxlen		= sizeof(int),
^1da177e4c3f41 Linus Torvalds    2005-04-16  3685  		.mode		= 0644,
6d4561110a3e9f Eric W. Biederman 2009-11-16  3686  		.proc_handler	= cdrom_sysctl_handler,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3687  	},
^1da177e4c3f41 Linus Torvalds    2005-04-16  3688  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3689  		.procname	= "lock",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3690  		.data		= &cdrom_sysctl_settings.lock,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3691  		.maxlen		= sizeof(int),
^1da177e4c3f41 Linus Torvalds    2005-04-16  3692  		.mode		= 0644,
6d4561110a3e9f Eric W. Biederman 2009-11-16  3693  		.proc_handler	= cdrom_sysctl_handler,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3694  	},
^1da177e4c3f41 Linus Torvalds    2005-04-16  3695  	{
^1da177e4c3f41 Linus Torvalds    2005-04-16  3696  		.procname	= "check_media",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3697  		.data		= &cdrom_sysctl_settings.check,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3698  		.maxlen		= sizeof(int),
^1da177e4c3f41 Linus Torvalds    2005-04-16  3699  		.mode		= 0644,
6d4561110a3e9f Eric W. Biederman 2009-11-16  3700  		.proc_handler	= cdrom_sysctl_handler
^1da177e4c3f41 Linus Torvalds    2005-04-16  3701  	},
894d2491153a9f Eric W. Biederman 2009-11-05  3702  	{ }
^1da177e4c3f41 Linus Torvalds    2005-04-16  3703  };
^1da177e4c3f41 Linus Torvalds    2005-04-16  3704  

:::::: The code at line 3597 was first introduced by commit
:::::: 8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38 sysctl: remove "struct file *" argument of ->proc_handler

:::::: TO: Alexey Dobriyan <adobriyan@gmail.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.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: 33000 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-06-09 15:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-01 12:12 [linux-next:master 3942/14131] drivers/cdrom/cdrom.c:3597:42: sparse: got void [noderef] <asn:1> *buffer kbuild test robot
2020-06-09 15:07 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.