tree:
https://github.com/zen-kernel/zen-kernel 5.13/futex2-tkg
head: 8eb940ffa39f19c4ddf284615dfb27a6444a3c1d
commit: 0180aec9b832267462e7d6bfc1659ac5bd32350a [4/15] futex2: Implement requeue
operation
config: mips-randconfig-r026-20210720 (attached as .config)
compiler: mips64-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://github.com/zen-kernel/zen-kernel/commit/0180aec9b832267462e7d6bfc...
git remote add zen-kernel-zen-kernel
https://github.com/zen-kernel/zen-kernel
git fetch --no-tags zen-kernel-zen-kernel 5.13/futex2-tkg
git checkout 0180aec9b832267462e7d6bfc1659ac5bd32350a
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir
ARCH=mips SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
kernel/futex2.c:723:16: warning: 'struct compat_futex_waitv' declared inside
parameter list will not be visible outside of this definition or declaration
723 | struct compat_futex_waitv __user *uwaitv,
| ^~~~~~~~~~~~~~~~~~
kernel/futex2.c: In function 'compat_futex_parse_waitv':
kernel/futex2.c:727:28: error: storage size of 'waitv' isn't known
727 | struct compat_futex_waitv waitv;
| ^~~~~
kernel/futex2.c:731:37: error: invalid use of undefined type 'struct
compat_futex_waitv'
731 | if (copy_from_user(&waitv, &uwaitv[i], sizeof(waitv)))
| ^
kernel/futex2.c:740:31: error: implicit declaration of function 'compat_ptr'
[-Werror=implicit-function-declaration]
740 | futexv->objects[i].uaddr = compat_ptr(waitv.uaddr);
| ^~~~~~~~~~
kernel/futex2.c:727:28: warning: unused variable 'waitv' [-Wunused-variable]
727 | struct compat_futex_waitv waitv;
| ^~~~~
kernel/futex2.c: At top level:
kernel/futex2.c:759:36: error: expected ')' before 'struct'
759 | COMPAT_SYSCALL_DEFINE4(futex_waitv, struct compat_futex_waitv __user *,
waiters,
| ^~~~~~~
| )
kernel/futex2.c:1086:18: warning: 'struct compat_futex_requeue' declared inside
parameter list will not be visible outside of this definition or declaration
1086 | struct compat_futex_requeue __user *uaddr,
| ^~~~~~~~~~~~~~~~~~~~
kernel/futex2.c: In function 'compat_futex_parse_requeue':
> kernel/futex2.c:1089:30: error: storage size of 'tmp'
isn't known
1089 | struct compat_futex_requeue tmp;
| ^~~
kernel/futex2.c:1089:30: warning: unused variable 'tmp' [-Wunused-variable]
kernel/futex2.c: At top level:
kernel/futex2.c:1106:38: error: expected ')' before 'struct'
1106 | COMPAT_SYSCALL_DEFINE6(futex_requeue, struct compat_futex_requeue __user *,
uaddr1,
| ^~~~~~~
| )
kernel/futex2.c:1085:12: warning: 'compat_futex_parse_requeue' defined but not
used [-Wunused-function]
1085 | static int compat_futex_parse_requeue(struct futex_requeue *rq,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/futex2.c:722:12: warning: 'compat_futex_parse_waitv' defined but not
used [-Wunused-function]
722 | static int compat_futex_parse_waitv(struct futex_waiter_head *futexv,
| ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +1089 kernel/futex2.c
1083
1084 #ifdef CONFIG_COMPAT
1085 static int compat_futex_parse_requeue(struct futex_requeue *rq,
1086 struct compat_futex_requeue __user *uaddr,
1087 bool *shared)
1088 {
1089 struct compat_futex_requeue tmp;
1090
1091 if (copy_from_user(&tmp, uaddr, sizeof(tmp)))
1092 return -EFAULT;
1093
1094 if (tmp.flags & ~FUTEXV_WAITER_MASK ||
1095 (tmp.flags & FUTEX_SIZE_MASK) != FUTEX_32)
1096 return -EINVAL;
1097
1098 *shared = (tmp.flags & FUTEX_SHARED_FLAG) ? true : false;
1099
1100 rq->uaddr = compat_ptr(tmp.uaddr);
1101 rq->flags = tmp.flags;
1102
1103 return 0;
1104 }
1105
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org