[jirislaby:devel 14/38] drivers/tty/tty_io.c:2814:32: warning: passing argument 2 of 'ld->ops->ioctl' makes integer from pointer without a cast

From: kernel test robot
Date: Fri Aug 06 2021 - 14:44:35 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git devel
head: f7af18a9564a3d79c7ac5291734ef0b68c1f765d
commit: ea5d828388883933b32d38377907d9ea0533f692 [14/38] tty: remove file from tty_ldisc_ops::ioctl and compat_ioctl
config: openrisc-buildonly-randconfig-r006-20210805 (attached as .config)
compiler: or1k-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git/commit/?id=ea5d828388883933b32d38377907d9ea0533f692
git remote add jirislaby https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git
git fetch --no-tags jirislaby devel
git checkout ea5d828388883933b32d38377907d9ea0533f692
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=openrisc

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

All warnings (new ones prefixed by >>):

drivers/tty/tty_io.c: In function 'tty_ioctl':
>> drivers/tty/tty_io.c:2814:32: warning: passing argument 2 of 'ld->ops->ioctl' makes integer from pointer without a cast [-Wint-conversion]
2814 | retval = ld->ops->ioctl(tty, file, cmd, arg);
| ^~~~
| |
| struct file *
drivers/tty/tty_io.c:2814:32: note: expected 'unsigned int' but argument is of type 'struct file *'
drivers/tty/tty_io.c:2814:12: error: too many arguments to function 'ld->ops->ioctl'
2814 | retval = ld->ops->ioctl(tty, file, cmd, arg);
| ^~


vim +2814 drivers/tty/tty_io.c

e8b70e7d3e86319 drivers/char/tty_io.c Alan Cox 2009-06-11 2677
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2678 /*
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2679 * Split this up, as gcc can choke on it otherwise..
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2680 */
04f378b198da233 drivers/char/tty_io.c Alan Cox 2008-04-30 2681 long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2682 {
d996b62a8df1d93 drivers/char/tty_io.c Nicholas Piggin 2010-08-18 2683 struct tty_struct *tty = file_tty(file);
d996b62a8df1d93 drivers/char/tty_io.c Nicholas Piggin 2010-08-18 2684 struct tty_struct *real_tty;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2685 void __user *p = (void __user *)arg;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2686 int retval;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2687 struct tty_ldisc *ld;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2688
6131ffaa1f09141 drivers/tty/tty_io.c Al Viro 2013-02-27 2689 if (tty_paranoia_check(tty, file_inode(file), "tty_ioctl"))
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2690 return -EINVAL;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2691
e8b70e7d3e86319 drivers/char/tty_io.c Alan Cox 2009-06-11 2692 real_tty = tty_pair_get_tty(tty);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2693
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2694 /*
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2695 * Factor out some common prep work
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2696 */
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2697 switch (cmd) {
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2698 case TIOCSETD:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2699 case TIOCSBRK:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2700 case TIOCCBRK:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2701 case TCSBRK:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2702 case TCSBRKP:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2703 retval = tty_check_change(tty);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2704 if (retval)
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2705 return retval;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2706 if (cmd != TIOCCBRK) {
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2707 tty_wait_until_sent(tty, 0);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2708 if (signal_pending(current))
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2709 return -EINTR;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2710 }
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2711 break;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2712 }
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2713
9e98966c7bb9435 drivers/char/tty_io.c Alan Cox 2008-07-22 2714 /*
9e98966c7bb9435 drivers/char/tty_io.c Alan Cox 2008-07-22 2715 * Now do the stuff.
9e98966c7bb9435 drivers/char/tty_io.c Alan Cox 2008-07-22 2716 */
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2717 switch (cmd) {
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2718 case TIOCSTI:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2719 return tiocsti(tty, p);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2720 case TIOCGWINSZ:
8f520021837d45c drivers/char/tty_io.c Alan Cox 2008-10-13 2721 return tiocgwinsz(real_tty, p);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2722 case TIOCSWINSZ:
fc6f6238226e6d1 drivers/char/tty_io.c Alan Cox 2009-01-02 2723 return tiocswinsz(real_tty, p);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2724 case TIOCCONS:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2725 return real_tty != tty ? -EINVAL : tioccons(file);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2726 case TIOCEXCL:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2727 set_bit(TTY_EXCLUSIVE, &tty->flags);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2728 return 0;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2729 case TIOCNXCL:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2730 clear_bit(TTY_EXCLUSIVE, &tty->flags);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2731 return 0;
84fd7bdf1266ee6 drivers/tty/tty_io.c Cyrill Gorcunov 2012-10-24 2732 case TIOCGEXCL:
84fd7bdf1266ee6 drivers/tty/tty_io.c Cyrill Gorcunov 2012-10-24 2733 {
84fd7bdf1266ee6 drivers/tty/tty_io.c Cyrill Gorcunov 2012-10-24 2734 int excl = test_bit(TTY_EXCLUSIVE, &tty->flags);
e73b240785f2845 drivers/tty/tty_io.c Xiaofei Tan 2021-05-12 2735
84fd7bdf1266ee6 drivers/tty/tty_io.c Cyrill Gorcunov 2012-10-24 2736 return put_user(excl, (int __user *)p);
84fd7bdf1266ee6 drivers/tty/tty_io.c Cyrill Gorcunov 2012-10-24 2737 }
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2738 case TIOCGETD:
5c17c861a357e94 drivers/tty/tty_io.c Peter Hurley 2016-01-10 2739 return tiocgetd(tty, p);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2740 case TIOCSETD:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2741 return tiocsetd(tty, p);
3c95c985fa91ecf drivers/tty/tty_io.c Kay Sievers 2011-02-17 2742 case TIOCVHANGUP:
3c95c985fa91ecf drivers/tty/tty_io.c Kay Sievers 2011-02-17 2743 if (!capable(CAP_SYS_ADMIN))
3c95c985fa91ecf drivers/tty/tty_io.c Kay Sievers 2011-02-17 2744 return -EPERM;
3c95c985fa91ecf drivers/tty/tty_io.c Kay Sievers 2011-02-17 2745 tty_vhangup(tty);
3c95c985fa91ecf drivers/tty/tty_io.c Kay Sievers 2011-02-17 2746 return 0;
b7b8de087384cc1 drivers/tty/tty_io.c Werner Fink 2010-12-03 2747 case TIOCGDEV:
b7b8de087384cc1 drivers/tty/tty_io.c Werner Fink 2010-12-03 2748 {
b7b8de087384cc1 drivers/tty/tty_io.c Werner Fink 2010-12-03 2749 unsigned int ret = new_encode_dev(tty_devnum(real_tty));
e73b240785f2845 drivers/tty/tty_io.c Xiaofei Tan 2021-05-12 2750
b7b8de087384cc1 drivers/tty/tty_io.c Werner Fink 2010-12-03 2751 return put_user(ret, (unsigned int __user *)p);
b7b8de087384cc1 drivers/tty/tty_io.c Werner Fink 2010-12-03 2752 }
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2753 /*
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2754 * Break handling
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2755 */
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2756 case TIOCSBRK: /* Turn break on, unconditionally */
f34d7a5b7010b82 drivers/char/tty_io.c Alan Cox 2008-04-30 2757 if (tty->ops->break_ctl)
9e98966c7bb9435 drivers/char/tty_io.c Alan Cox 2008-07-22 2758 return tty->ops->break_ctl(tty, -1);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2759 return 0;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2760 case TIOCCBRK: /* Turn break off, unconditionally */
f34d7a5b7010b82 drivers/char/tty_io.c Alan Cox 2008-04-30 2761 if (tty->ops->break_ctl)
9e98966c7bb9435 drivers/char/tty_io.c Alan Cox 2008-07-22 2762 return tty->ops->break_ctl(tty, 0);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2763 return 0;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2764 case TCSBRK: /* SVID version: non-zero arg --> no break */
283fef59d6e934e drivers/char/tty_io.c Paul Fulghum 2006-06-27 2765 /* non-zero arg means wait for all output data
283fef59d6e934e drivers/char/tty_io.c Paul Fulghum 2006-06-27 2766 * to be sent (performed above) but don't send break.
283fef59d6e934e drivers/char/tty_io.c Paul Fulghum 2006-06-27 2767 * This is used by the tcdrain() termios function.
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2768 */
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2769 if (!arg)
b20f3ae5f0efe18 drivers/char/tty_io.c Domen Puncer 2005-06-25 2770 return send_break(tty, 250);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2771 return 0;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2772 case TCSBRKP: /* support for POSIX tcsendbreak() */
b20f3ae5f0efe18 drivers/char/tty_io.c Domen Puncer 2005-06-25 2773 return send_break(tty, arg ? arg*100 : 250);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2774
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2775 case TIOCMGET:
60b33c133ca0b7c drivers/tty/tty_io.c Alan Cox 2011-02-14 2776 return tty_tiocmget(tty, p);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2777 case TIOCMSET:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2778 case TIOCMBIC:
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2779 case TIOCMBIS:
20b9d17715017ae drivers/tty/tty_io.c Alan Cox 2011-02-14 2780 return tty_tiocmset(tty, cmd, p);
d281da7ff6f70ef drivers/char/tty_io.c Alan Cox 2010-09-16 2781 case TIOCGICOUNT:
a3096199226c2e4 drivers/tty/tty_io.c Al Viro 2018-09-12 2782 return tty_tiocgicount(tty, p);
c5c34d4862e18ef drivers/char/tty_io.c Paul Fulghum 2007-05-12 2783 case TCFLSH:
c5c34d4862e18ef drivers/char/tty_io.c Paul Fulghum 2007-05-12 2784 switch (arg) {
c5c34d4862e18ef drivers/char/tty_io.c Paul Fulghum 2007-05-12 2785 case TCIFLUSH:
c5c34d4862e18ef drivers/char/tty_io.c Paul Fulghum 2007-05-12 2786 case TCIOFLUSH:
c5c34d4862e18ef drivers/char/tty_io.c Paul Fulghum 2007-05-12 2787 /* flush tty buffer and allow ldisc to process ioctl */
86c80a8e2ab443e drivers/tty/tty_io.c Peter Hurley 2014-11-05 2788 tty_buffer_flush(tty, NULL);
c5c34d4862e18ef drivers/char/tty_io.c Paul Fulghum 2007-05-12 2789 break;
c5c34d4862e18ef drivers/char/tty_io.c Paul Fulghum 2007-05-12 2790 }
c5c34d4862e18ef drivers/char/tty_io.c Paul Fulghum 2007-05-12 2791 break;
8a8ae62f8296760 drivers/tty/tty_io.c Jiri Slaby 2014-11-06 2792 case TIOCSSERIAL:
930236a30897532 drivers/tty/tty_io.c Al Viro 2018-09-12 2793 return tty_tiocsserial(tty, p);
2f46a2c1d4eb982 drivers/tty/tty_io.c Al Viro 2018-09-11 2794 case TIOCGSERIAL:
930236a30897532 drivers/tty/tty_io.c Al Viro 2018-09-12 2795 return tty_tiocgserial(tty, p);
311fc65c9fb9c96 drivers/tty/tty_io.c Eric W. Biederman 2017-08-24 2796 case TIOCGPTPEER:
311fc65c9fb9c96 drivers/tty/tty_io.c Eric W. Biederman 2017-08-24 2797 /* Special because the struct file is needed */
311fc65c9fb9c96 drivers/tty/tty_io.c Eric W. Biederman 2017-08-24 2798 return ptm_open_peer(file, tty, (int)arg);
a1235b3eb10086b drivers/tty/tty_io.c Nicolas Pitre 2017-04-12 2799 default:
a1235b3eb10086b drivers/tty/tty_io.c Nicolas Pitre 2017-04-12 2800 retval = tty_jobctrl_ioctl(tty, real_tty, file, cmd, arg);
a1235b3eb10086b drivers/tty/tty_io.c Nicolas Pitre 2017-04-12 2801 if (retval != -ENOIOCTLCMD)
a1235b3eb10086b drivers/tty/tty_io.c Nicolas Pitre 2017-04-12 2802 return retval;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2803 }
f34d7a5b7010b82 drivers/char/tty_io.c Alan Cox 2008-04-30 2804 if (tty->ops->ioctl) {
c961bfb17406c9f drivers/tty/tty_io.c Peter Hurley 2014-11-05 2805 retval = tty->ops->ioctl(tty, cmd, arg);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2806 if (retval != -ENOIOCTLCMD)
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2807 return retval;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2808 }
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2809 ld = tty_ldisc_ref_wait(tty);
e55afd11a48354c drivers/tty/tty_io.c Peter Hurley 2016-01-10 2810 if (!ld)
e55afd11a48354c drivers/tty/tty_io.c Peter Hurley 2016-01-10 2811 return hung_up_tty_ioctl(file, cmd, arg);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2812 retval = -EINVAL;
a352def21a64213 drivers/char/tty_io.c Alan Cox 2008-07-16 2813 if (ld->ops->ioctl) {
a352def21a64213 drivers/char/tty_io.c Alan Cox 2008-07-16 @2814 retval = ld->ops->ioctl(tty, file, cmd, arg);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2815 if (retval == -ENOIOCTLCMD)
bbb63c514a34643 drivers/tty/tty_io.c Wanlong Gao 2012-08-27 2816 retval = -ENOTTY;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2817 }
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2818 tty_ldisc_deref(ld);
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2819 return retval;
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2820 }
^1da177e4c3f415 drivers/char/tty_io.c Linus Torvalds 2005-04-16 2821

:::::: The code at line 2814 was first introduced by commit
:::::: a352def21a642133758b868c71bee12ab34ad5c5 tty: Ldisc revamp

:::::: TO: Alan Cox <alan@xxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip