tree: https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.aio head: d8f1e6bce1b9ae7d6ebd0e269106476dd9564a0b commit: d8f1e6bce1b9ae7d6ebd0e269106476dd9564a0b [4/4] aio: fold do_io_submit() into callers config: x86_64-randconfig-x003-201821 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: git checkout d8f1e6bce1b9ae7d6ebd0e269106476dd9564a0b # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): In file included from include/linux/kernel.h:10:0, from fs/aio.c:14: fs/aio.c: In function '__do_compat_sys_io_submit': >> fs/aio.c:1893:36: error: 'iocbpp' undeclared (first use in this function); did you mean 'iocb'? if (unlikely(get_user(user_iocb, iocbpp + i))) { ^ include/linux/compiler.h:77:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> arch/x86/include/asm/uaccess.h:174:11: note: in expansion of macro '__inttype' register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \ ^~~~~~~~~ >> fs/aio.c:1893:16: note: in expansion of macro 'get_user' if (unlikely(get_user(user_iocb, iocbpp + i))) { ^~~~~~~~ fs/aio.c:1893:36: note: each undeclared identifier is reported only once for each function it appears in if (unlikely(get_user(user_iocb, iocbpp + i))) { ^ include/linux/compiler.h:77:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> arch/x86/include/asm/uaccess.h:174:11: note: in expansion of macro '__inttype' register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \ ^~~~~~~~~ >> fs/aio.c:1893:16: note: in expansion of macro 'get_user' if (unlikely(get_user(user_iocb, iocbpp + i))) { ^~~~~~~~ >> arch/x86/include/asm/uaccess.h:138:12: error: first argument to '__builtin_choose_expr' not a constant __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL)) ^ include/linux/compiler.h:77:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> arch/x86/include/asm/uaccess.h:174:11: note: in expansion of macro '__inttype' register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \ ^~~~~~~~~ >> fs/aio.c:1893:16: note: in expansion of macro 'get_user' if (unlikely(get_user(user_iocb, iocbpp + i))) { ^~~~~~~~ vim +1893 fs/aio.c 1868 1869 COMPAT_SYSCALL_DEFINE3(io_submit, compat_aio_context_t, ctx_id, 1870 int, nr, compat_uptr_t __user *, iocb) 1871 { 1872 struct kioctx *ctx; 1873 long ret = 0; 1874 int i = 0; 1875 struct blk_plug plug; 1876 1877 if (unlikely(nr < 0)) 1878 return -EINVAL; 1879 1880 ctx = lookup_ioctx(ctx_id); 1881 if (unlikely(!ctx)) { 1882 pr_debug("EINVAL: invalid context id\n"); 1883 return -EINVAL; 1884 } 1885 1886 if (nr > ctx->nr_events) 1887 nr = ctx->nr_events; 1888 1889 blk_start_plug(&plug); 1890 for (i = 0; i < nr; i++) { 1891 compat_uptr_t user_iocb; 1892 > 1893 if (unlikely(get_user(user_iocb, iocbpp + i))) { 1894 ret = -EFAULT; 1895 break; 1896 } 1897 1898 ret = io_submit_one(ctx, compat_ptr(user_iocb), true); 1899 if (ret) 1900 break; 1901 } 1902 blk_finish_plug(&plug); 1903 1904 percpu_ref_put(&ctx->users); 1905 return i ? i : ret; 1906 } 1907 #endif 1908 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation