On Tue, Apr 28, 2020 at 06:24:21PM -0700, Minchan Kim wrote: > Hello, > > On Tue, Apr 28, 2020 at 12:04:59PM -0700, Nathan Chancellor wrote: > > On Tue, Apr 28, 2020 at 06:10:06PM +1000, Stephen Rothwell wrote: > > > Hi all, > > > > > > Changes since 20200424: > > > > > > The qcom tree still had its build failure for which I reverted a commit. > > > > > > The hwmon-staging tree gained a build failure for which I reverted > > > a commit. > > > > > > The mac80211-next tree gained a build failure so I used the version > > > from next-20200424. > > > > > > The drm-misc tree still had its build failure for which I disabled a > > > COMPILE_TEST setting. > > > > > > The akpm-current tree gained a conflict against the risc-v tree. > > > > > > The akpm tree lost a patch that turned up elsewhere. > > > > > > Non-merge commits (relative to Linus' tree): 4451 > > > 5474 files changed, 151275 insertions(+), 63274 deletions(-) > > > > I am seeing the following build error on s390 defconfig, caused by > > commit 743f242d65ec ("mm: support compat_sys_process_madvise"). > > Apologies if it has already been reported, I did a search of lore and > > found nothing. > > > > Cheers, > > Nathan > > > > $ make -j$(nproc) -s ARCH=s390 CROSS_COMPILE=s390x-linux- defconfig all > > ... > > mm/madvise.c: In function '__se_compat_sys_process_madvise': > > ./include/linux/compiler.h:394:38: error: call to '__compiletime_assert_162' declared with attribute error: BUILD_BUG_ON failed: sizeof(unsigned long) > 4 && !__TYPE_IS_PTR(unsigned long) > > 394 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > > | ^ > > ./include/linux/compiler.h:375:4: note: in definition of macro '__compiletime_assert' > > 375 | prefix ## suffix(); \ > > | ^~~~~~ > > ./include/linux/compiler.h:394:2: note: in expansion of macro '_compiletime_assert' > > 394 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > > | ^~~~~~~~~~~~~~~~~~~ > > ./include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' > > 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > > | ^~~~~~~~~~~~~~~~~~ > > ./include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > > 50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition) > > | ^~~~~~~~~~~~~~~~ > > ./arch/s390/include/asm/compat.h:18:2: note: in expansion of macro 'BUILD_BUG_ON' > > 18 | BUILD_BUG_ON(sizeof(t) > 4 && !__TYPE_IS_PTR(t)); \ > > | ^~~~~~~~~~~~ > > ./include/linux/syscalls.h:110:27: note: in expansion of macro '__SC_DELOUSE' > > 110 | #define __MAP3(m,t,a,...) m(t,a), __MAP2(m,__VA_ARGS__) > > | ^ > > ./include/linux/syscalls.h:111:35: note: in expansion of macro '__MAP3' > > 111 | #define __MAP4(m,t,a,...) m(t,a), __MAP3(m,__VA_ARGS__) > > | ^~~~~~ > > ./include/linux/syscalls.h:112:35: note: in expansion of macro '__MAP4' > > 112 | #define __MAP5(m,t,a,...) m(t,a), __MAP4(m,__VA_ARGS__) > > | ^~~~~~ > > ./include/linux/syscalls.h:113:35: note: in expansion of macro '__MAP5' > > 113 | #define __MAP6(m,t,a,...) m(t,a), __MAP5(m,__VA_ARGS__) > > | ^~~~~~ > > ./include/linux/syscalls.h:114:22: note: in expansion of macro '__MAP6' > > 114 | #define __MAP(n,...) __MAP##n(__VA_ARGS__) > > | ^~~~~ > > ./arch/s390/include/asm/syscall_wrapper.h:80:36: note: in expansion of macro '__MAP' > > 80 | long ret = __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\ > > | ^~~~~ > > ./include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx' > > 66 | COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__) > > | ^~~~~~~~~~~~~~~~~~~~~~ > > mm/madvise.c:1314:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6' > > 1314 | COMPAT_SYSCALL_DEFINE6(process_madvise, int, which, compat_pid_t, upid, > > | ^~~~~~~~~~~~~~~~~~~~~~ > > ./include/linux/compiler.h:394:38: error: call to '__compiletime_assert_164' declared with attribute error: BUILD_BUG_ON failed: sizeof(unsigned long) > 4 && !__TYPE_IS_PTR(unsigned long) > > 394 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > > | ^ > > ./include/linux/compiler.h:375:4: note: in definition of macro '__compiletime_assert' > > 375 | prefix ## suffix(); \ > > | ^~~~~~ > > ./include/linux/compiler.h:394:2: note: in expansion of macro '_compiletime_assert' > > 394 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > > | ^~~~~~~~~~~~~~~~~~~ > > ./include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' > > 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > > | ^~~~~~~~~~~~~~~~~~ > > ./include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > > 50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition) > > | ^~~~~~~~~~~~~~~~ > > ./arch/s390/include/asm/compat.h:18:2: note: in expansion of macro 'BUILD_BUG_ON' > > 18 | BUILD_BUG_ON(sizeof(t) > 4 && !__TYPE_IS_PTR(t)); \ > > | ^~~~~~~~~~~~ > > ./include/linux/syscalls.h:108:27: note: in expansion of macro '__SC_DELOUSE' > > 108 | #define __MAP1(m,t,a,...) m(t,a) > > | ^ > > ./include/linux/syscalls.h:109:35: note: in expansion of macro '__MAP1' > > 109 | #define __MAP2(m,t,a,...) m(t,a), __MAP1(m,__VA_ARGS__) > > | ^~~~~~ > > ./include/linux/syscalls.h:110:35: note: in expansion of macro '__MAP2' > > 110 | #define __MAP3(m,t,a,...) m(t,a), __MAP2(m,__VA_ARGS__) > > | ^~~~~~ > > ./include/linux/syscalls.h:111:35: note: in expansion of macro '__MAP3' > > 111 | #define __MAP4(m,t,a,...) m(t,a), __MAP3(m,__VA_ARGS__) > > | ^~~~~~ > > ./include/linux/syscalls.h:112:35: note: in expansion of macro '__MAP4' > > 112 | #define __MAP5(m,t,a,...) m(t,a), __MAP4(m,__VA_ARGS__) > > | ^~~~~~ > > ./include/linux/syscalls.h:113:35: note: in expansion of macro '__MAP5' > > 113 | #define __MAP6(m,t,a,...) m(t,a), __MAP5(m,__VA_ARGS__) > > | ^~~~~~ > > ./include/linux/syscalls.h:114:22: note: in expansion of macro '__MAP6' > > 114 | #define __MAP(n,...) __MAP##n(__VA_ARGS__) > > | ^~~~~ > > ./arch/s390/include/asm/syscall_wrapper.h:80:36: note: in expansion of macro '__MAP' > > 80 | long ret = __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\ > > | ^~~~~ > > ./include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx' > > 66 | COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__) > > | ^~~~~~~~~~~~~~~~~~~~~~ > > mm/madvise.c:1314:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6' > > 1314 | COMPAT_SYSCALL_DEFINE6(process_madvise, int, which, compat_pid_t, upid, > > | ^~~~~~~~~~~~~~~~~~~~~~ > > make[2]: *** [scripts/Makefile.build:266: mm/madvise.o] Error 1 > > make[2]: *** Waiting for unfinished jobs.... > > make[1]: *** [Makefile:1723: mm] Error 2 > > make[1]: *** Waiting for unfinished jobs.... > > ... > > Could you try this patch? I think it should fix it. > > From 3f993353c310a027f138d822a79ce49770fe6e50 Mon Sep 17 00:00:00 2001 > From: Minchan Kim <minchan@xxxxxxxxxx> > Date: Tue, 28 Apr 2020 18:20:24 -0700 > Subject: [PATCH] mm: fix s390 compat build error > > Nathan reported build error with sys_compat_process_madvise. > This patch should fix it. > > Reported-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > Signed-off-by: Minchan Kim <minchan@xxxxxxxxxx> Tested-by: Nathan Chancellor <natechancellor@xxxxxxxxx> # build > --- > include/linux/compat.h | 5 +++-- > mm/madvise.c | 9 ++++++--- > 2 files changed, 9 insertions(+), 5 deletions(-) > > diff --git a/include/linux/compat.h b/include/linux/compat.h > index 1134ba3e61d0..19c524513cbb 100644 > --- a/include/linux/compat.h > +++ b/include/linux/compat.h > @@ -820,9 +820,10 @@ asmlinkage long compat_sys_pwritev64v2(unsigned long fd, > unsigned long vlen, loff_t pos, rwf_t flags); > #endif > > -asmlinkage ssize_t compat_sys_process_madvise(int which, > +asmlinkage ssize_t compat_sys_process_madvise(compat_int_t which, > compat_pid_t upid, const struct compat_iovec __user *vec, > - unsigned long vlen, int behavior, unsigned long flags); > + compat_ulong_t vlen, compat_int_t behavior, > + compat_ulong_t flags); > > /* > * Deprecated system calls which are still defined in > diff --git a/mm/madvise.c b/mm/madvise.c > index 8fec261457a6..99c06d5f0785 100644 > --- a/mm/madvise.c > +++ b/mm/madvise.c > @@ -1311,9 +1311,12 @@ SYSCALL_DEFINE6(process_madvise, int, which, pid_t, upid, > } > > #ifdef CONFIG_COMPAT > -COMPAT_SYSCALL_DEFINE6(process_madvise, int, which, compat_pid_t, upid, > - const struct compat_iovec __user *, vec, unsigned long, vlen, > - int, behavior, unsigned long, flags) > +COMPAT_SYSCALL_DEFINE6(process_madvise, compat_int_t, which, > + compat_pid_t, upid, > + const struct compat_iovec __user *, vec, > + compat_ulong_t, vlen, > + compat_int_t, behavior, > + compat_ulong_t, flags) > > { > ssize_t ret; > -- > 2.26.2.303.gf8c07b1a785-goog > >