CC: kbuild-...@lists.01.org
TO: "Christoph, Hellwig," <h...@lst.de>
CC: Al Viro <v...@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 <l...@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 <adobri...@gmail.com>
:::::: CC: Linus Torvalds <torva...@linux-foundation.org>

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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to