lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:   Mon, 27 Jul 2020 03:47:38 +0800
From:   kernel test robot <lkp@...el.com>
To:     Luc Van Oostenryck <luc.vanoostenryck@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: sound/core/timer.c:2084:24: sparse: sparse: incorrect type in
 initializer (different address spaces)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   1ada9010e578150984039a770c98f41799b30bc4
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date:   5 weeks ago
config: openrisc-randconfig-s031-20200726 (attached as .config)
compiler: or1k-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.2-93-g4c6cbe55-dirty
        git checkout 670d0a4b10704667765f7d18f7592993d02783aa
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=openrisc 

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


sparse warnings: (new ones prefixed by >>)

   sound/core/timer.c:2045:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int const *__gu_addr @@     got int [noderef] __user *p @@
   sound/core/timer.c:2045:13: sparse:     expected int const *__gu_addr
   sound/core/timer.c:2045:13: sparse:     got int [noderef] __user *p
>> sound/core/timer.c:2084:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user *p @@
   sound/core/timer.c:2084:24: sparse:     expected int *__pu_addr
   sound/core/timer.c:2084:24: sparse:     got int [noderef] __user *p
   sound/core/timer.c:790:25: sparse: sparse: context imbalance in 'snd_timer_process_callbacks' - unexpected unlock
   sound/core/timer.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/timer.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/timer.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/timer.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/timer.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/timer.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/timer.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/timer.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/timer.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/timer.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/timer.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/timer.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/timer.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/timer.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/timer.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/timer.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/timer.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/timer.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
--
>> sound/core/compress_offload.c:949:26: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected int *__pu_addr @@     got int [noderef] __user * @@
   sound/core/compress_offload.c:949:26: sparse:     expected int *__pu_addr
>> sound/core/compress_offload.c:949:26: sparse:     got int [noderef] __user *
   sound/core/compress_offload.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/compress_offload.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/compress_offload.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/compress_offload.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/compress_offload.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/compress_offload.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/compress_offload.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/compress_offload.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/compress_offload.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/compress_offload.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from
   sound/core/compress_offload.c: note: in included file (through include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *to @@     got void [noderef] __user *to @@
   include/linux/uaccess.h:131:38: sparse:     expected void *to
   include/linux/uaccess.h:131:38: sparse:     got void [noderef] __user *to
   include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] __user *from @@     got void const *from @@
   include/linux/uaccess.h:131:42: sparse:     expected void const [noderef] __user *from
   include/linux/uaccess.h:131:42: sparse:     got void const *from
   sound/core/compress_offload.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
   arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const *from @@     got void const [noderef] __user *from @@
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     expected void const *from
   arch/openrisc/include/asm/uaccess.h:246:55: sparse:     got void const [noderef] __user *from

vim +2084 sound/core/timer.c

15790a6be14852 Takashi Iwai   2005-05-15  2036  
07094ae6f95272 Baolin Wang    2018-04-24  2037  static int snd_timer_user_tread(void __user *argp, struct snd_timer_user *tu,
07094ae6f95272 Baolin Wang    2018-04-24  2038  				unsigned int cmd, bool compat)
07094ae6f95272 Baolin Wang    2018-04-24  2039  {
07094ae6f95272 Baolin Wang    2018-04-24  2040  	int __user *p = argp;
07094ae6f95272 Baolin Wang    2018-04-24  2041  	int xarg, old_tread;
07094ae6f95272 Baolin Wang    2018-04-24  2042  
07094ae6f95272 Baolin Wang    2018-04-24  2043  	if (tu->timeri)	/* too late */
07094ae6f95272 Baolin Wang    2018-04-24  2044  		return -EBUSY;
07094ae6f95272 Baolin Wang    2018-04-24 @2045  	if (get_user(xarg, p))
07094ae6f95272 Baolin Wang    2018-04-24  2046  		return -EFAULT;
07094ae6f95272 Baolin Wang    2018-04-24  2047  
07094ae6f95272 Baolin Wang    2018-04-24  2048  	old_tread = tu->tread;
07094ae6f95272 Baolin Wang    2018-04-24  2049  
07094ae6f95272 Baolin Wang    2018-04-24  2050  	if (!xarg)
07094ae6f95272 Baolin Wang    2018-04-24  2051  		tu->tread = TREAD_FORMAT_NONE;
07094ae6f95272 Baolin Wang    2018-04-24  2052  	else if (cmd == SNDRV_TIMER_IOCTL_TREAD64 ||
07094ae6f95272 Baolin Wang    2018-04-24  2053  		 (IS_ENABLED(CONFIG_64BIT) && !compat))
07094ae6f95272 Baolin Wang    2018-04-24  2054  		tu->tread = TREAD_FORMAT_TIME64;
07094ae6f95272 Baolin Wang    2018-04-24  2055  	else
07094ae6f95272 Baolin Wang    2018-04-24  2056  		tu->tread = TREAD_FORMAT_TIME32;
07094ae6f95272 Baolin Wang    2018-04-24  2057  
07094ae6f95272 Baolin Wang    2018-04-24  2058  	if (tu->tread != old_tread &&
07094ae6f95272 Baolin Wang    2018-04-24  2059  	    realloc_user_queue(tu, tu->queue_size) < 0) {
07094ae6f95272 Baolin Wang    2018-04-24  2060  		tu->tread = old_tread;
07094ae6f95272 Baolin Wang    2018-04-24  2061  		return -ENOMEM;
07094ae6f95272 Baolin Wang    2018-04-24  2062  	}
07094ae6f95272 Baolin Wang    2018-04-24  2063  
07094ae6f95272 Baolin Wang    2018-04-24  2064  	return 0;
07094ae6f95272 Baolin Wang    2018-04-24  2065  }
07094ae6f95272 Baolin Wang    2018-04-24  2066  
8c50b37c04a026 Takashi Iwai   2005-05-15  2067  enum {
8c50b37c04a026 Takashi Iwai   2005-05-15  2068  	SNDRV_TIMER_IOCTL_START_OLD = _IO('T', 0x20),
8c50b37c04a026 Takashi Iwai   2005-05-15  2069  	SNDRV_TIMER_IOCTL_STOP_OLD = _IO('T', 0x21),
8c50b37c04a026 Takashi Iwai   2005-05-15  2070  	SNDRV_TIMER_IOCTL_CONTINUE_OLD = _IO('T', 0x22),
8c50b37c04a026 Takashi Iwai   2005-05-15  2071  	SNDRV_TIMER_IOCTL_PAUSE_OLD = _IO('T', 0x23),
8c50b37c04a026 Takashi Iwai   2005-05-15  2072  };
8c50b37c04a026 Takashi Iwai   2005-05-15  2073  
af368027a49a75 Takashi Iwai   2016-01-13  2074  static long __snd_timer_user_ioctl(struct file *file, unsigned int cmd,
07094ae6f95272 Baolin Wang    2018-04-24  2075  				 unsigned long arg, bool compat)
^1da177e4c3f41 Linus Torvalds 2005-04-16  2076  {
53d2f744afc1fc Takashi Iwai   2005-11-17  2077  	struct snd_timer_user *tu;
^1da177e4c3f41 Linus Torvalds 2005-04-16  2078  	void __user *argp = (void __user *)arg;
^1da177e4c3f41 Linus Torvalds 2005-04-16  2079  	int __user *p = argp;
^1da177e4c3f41 Linus Torvalds 2005-04-16  2080  
^1da177e4c3f41 Linus Torvalds 2005-04-16  2081  	tu = file->private_data;
^1da177e4c3f41 Linus Torvalds 2005-04-16  2082  	switch (cmd) {
^1da177e4c3f41 Linus Torvalds 2005-04-16  2083  	case SNDRV_TIMER_IOCTL_PVERSION:
^1da177e4c3f41 Linus Torvalds 2005-04-16 @2084  		return put_user(SNDRV_TIMER_VERSION, p) ? -EFAULT : 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16  2085  	case SNDRV_TIMER_IOCTL_NEXT_DEVICE:
^1da177e4c3f41 Linus Torvalds 2005-04-16  2086  		return snd_timer_user_next_device(argp);
07094ae6f95272 Baolin Wang    2018-04-24  2087  	case SNDRV_TIMER_IOCTL_TREAD_OLD:
07094ae6f95272 Baolin Wang    2018-04-24  2088  	case SNDRV_TIMER_IOCTL_TREAD64:
07094ae6f95272 Baolin Wang    2018-04-24  2089  		return snd_timer_user_tread(argp, tu, cmd, compat);
^1da177e4c3f41 Linus Torvalds 2005-04-16  2090  	case SNDRV_TIMER_IOCTL_GINFO:
^1da177e4c3f41 Linus Torvalds 2005-04-16  2091  		return snd_timer_user_ginfo(file, argp);
^1da177e4c3f41 Linus Torvalds 2005-04-16  2092  	case SNDRV_TIMER_IOCTL_GPARAMS:
^1da177e4c3f41 Linus Torvalds 2005-04-16  2093  		return snd_timer_user_gparams(file, argp);
^1da177e4c3f41 Linus Torvalds 2005-04-16  2094  	case SNDRV_TIMER_IOCTL_GSTATUS:
^1da177e4c3f41 Linus Torvalds 2005-04-16  2095  		return snd_timer_user_gstatus(file, argp);
^1da177e4c3f41 Linus Torvalds 2005-04-16  2096  	case SNDRV_TIMER_IOCTL_SELECT:
^1da177e4c3f41 Linus Torvalds 2005-04-16  2097  		return snd_timer_user_tselect(file, argp);
^1da177e4c3f41 Linus Torvalds 2005-04-16  2098  	case SNDRV_TIMER_IOCTL_INFO:
^1da177e4c3f41 Linus Torvalds 2005-04-16  2099  		return snd_timer_user_info(file, argp);
^1da177e4c3f41 Linus Torvalds 2005-04-16  2100  	case SNDRV_TIMER_IOCTL_PARAMS:
^1da177e4c3f41 Linus Torvalds 2005-04-16  2101  		return snd_timer_user_params(file, argp);
a07804cc7472d8 Baolin Wang    2018-04-24  2102  	case SNDRV_TIMER_IOCTL_STATUS32:
a07804cc7472d8 Baolin Wang    2018-04-24  2103  		return snd_timer_user_status32(file, argp);
a07804cc7472d8 Baolin Wang    2018-04-24  2104  	case SNDRV_TIMER_IOCTL_STATUS64:
a07804cc7472d8 Baolin Wang    2018-04-24  2105  		return snd_timer_user_status64(file, argp);
^1da177e4c3f41 Linus Torvalds 2005-04-16  2106  	case SNDRV_TIMER_IOCTL_START:
8c50b37c04a026 Takashi Iwai   2005-05-15  2107  	case SNDRV_TIMER_IOCTL_START_OLD:
^1da177e4c3f41 Linus Torvalds 2005-04-16  2108  		return snd_timer_user_start(file);
^1da177e4c3f41 Linus Torvalds 2005-04-16  2109  	case SNDRV_TIMER_IOCTL_STOP:
8c50b37c04a026 Takashi Iwai   2005-05-15  2110  	case SNDRV_TIMER_IOCTL_STOP_OLD:
^1da177e4c3f41 Linus Torvalds 2005-04-16  2111  		return snd_timer_user_stop(file);
^1da177e4c3f41 Linus Torvalds 2005-04-16  2112  	case SNDRV_TIMER_IOCTL_CONTINUE:
8c50b37c04a026 Takashi Iwai   2005-05-15  2113  	case SNDRV_TIMER_IOCTL_CONTINUE_OLD:
^1da177e4c3f41 Linus Torvalds 2005-04-16  2114  		return snd_timer_user_continue(file);
15790a6be14852 Takashi Iwai   2005-05-15  2115  	case SNDRV_TIMER_IOCTL_PAUSE:
8c50b37c04a026 Takashi Iwai   2005-05-15  2116  	case SNDRV_TIMER_IOCTL_PAUSE_OLD:
15790a6be14852 Takashi Iwai   2005-05-15  2117  		return snd_timer_user_pause(file);
^1da177e4c3f41 Linus Torvalds 2005-04-16  2118  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16  2119  	return -ENOTTY;
^1da177e4c3f41 Linus Torvalds 2005-04-16  2120  }
^1da177e4c3f41 Linus Torvalds 2005-04-16  2121  

:::::: The code at line 2084 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@...970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@...970.osdl.org>

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

Download attachment ".config.gz" of type "application/gzip" (26608 bytes)

Powered by blists - more mailing lists