* [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.