Re: [PATCH 02/27] x86/syscalls: fix -Wmissing-prototypes warnings from COND_SYSCALL()
On Sat, Feb 13, 2021 at 12:12 AM Mickaël Salaün wrote: > > Could you please push this patch to Linus? Thanks. > > On 04/02/2021 15:16, Mickaël Salaün wrote: > > > > On 28/01/2021 01:50, Masahiro Yamada wrote: > >> Building kernel/sys_ni.c with W=1 omits tons of -Wmissing-prototypes > >> warnings. > >> > >> $ make W=1 kernel/sys_ni.o > >> [ snip ] > >> CC kernel/sys_ni.o > >> In file included from kernel/sys_ni.c:10: > >> ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous > >> prototype for '__x64_sys_io_setup' [-Wmissing-prototypes] > >>83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ > >> | ^~ > >> ./arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of > >> macro '__COND_SYSCALL' > >> 100 | __COND_SYSCALL(x64, sys_##name) > >> | ^~ > >> ./arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of > >> macro '__X64_COND_SYSCALL' > >> 256 | __X64_COND_SYSCALL(name) \ > >> | ^~ > >> kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' > >>39 | COND_SYSCALL(io_setup); > >> | ^~~~ > >> ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous > >> prototype for '__ia32_sys_io_setup' [-Wmissing-prototypes] > >>83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ > >> | ^~ > >> ./arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of > >> macro '__COND_SYSCALL' > >> 120 | __COND_SYSCALL(ia32, sys_##name) > >> | ^~ > >> ./arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of > >> macro '__IA32_COND_SYSCALL' > >> 257 | __IA32_COND_SYSCALL(name) > >> | ^~~ > >> kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' > >>39 | COND_SYSCALL(io_setup); > >> | ^~~~ > >> ... > >> > >> __SYS_STUB0() and __SYS_STUBx() defined a few lines above have forward > >> declarations. Let's do likewise for __COND_SYSCALL() to fix the > >> warnings. > >> > >> Signed-off-by: Masahiro Yamada > > > > Tested-by: Mickaël Salaün > > > > Thanks to this patch we avoid multiple emails from Intel's bot when > > adding new syscalls. :) Thanks for the reminder. I will fix the typo "omits" -> "emits" and send v2 just in case. > > > > > >> --- > >> > >> arch/x86/include/asm/syscall_wrapper.h | 1 + > >> 1 file changed, 1 insertion(+) > >> > >> diff --git a/arch/x86/include/asm/syscall_wrapper.h > >> b/arch/x86/include/asm/syscall_wrapper.h > >> index a84333adeef2..80c08c7d5e72 100644 > >> --- a/arch/x86/include/asm/syscall_wrapper.h > >> +++ b/arch/x86/include/asm/syscall_wrapper.h > >> @@ -80,6 +80,7 @@ extern long __ia32_sys_ni_syscall(const struct pt_regs > >> *regs); > >> } > >> > >> #define __COND_SYSCALL(abi, name) \ > >> +__weak long __##abi##_##name(const struct pt_regs *__unused); \ > >> __weak long __##abi##_##name(const struct pt_regs *__unused)\ > >> { \ > >> return sys_ni_syscall();\ > >> -- Best Regards Masahiro Yamada
Re: [PATCH 02/27] x86/syscalls: fix -Wmissing-prototypes warnings from COND_SYSCALL()
Could you please push this patch to Linus? Thanks. On 04/02/2021 15:16, Mickaël Salaün wrote: > > On 28/01/2021 01:50, Masahiro Yamada wrote: >> Building kernel/sys_ni.c with W=1 omits tons of -Wmissing-prototypes >> warnings. >> >> $ make W=1 kernel/sys_ni.o >> [ snip ] >> CC kernel/sys_ni.o >> In file included from kernel/sys_ni.c:10: >> ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous >> prototype for '__x64_sys_io_setup' [-Wmissing-prototypes] >>83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ >> | ^~ >> ./arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro >> '__COND_SYSCALL' >> 100 | __COND_SYSCALL(x64, sys_##name) >> | ^~ >> ./arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro >> '__X64_COND_SYSCALL' >> 256 | __X64_COND_SYSCALL(name) \ >> | ^~ >> kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' >>39 | COND_SYSCALL(io_setup); >> | ^~~~ >> ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous >> prototype for '__ia32_sys_io_setup' [-Wmissing-prototypes] >>83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ >> | ^~ >> ./arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro >> '__COND_SYSCALL' >> 120 | __COND_SYSCALL(ia32, sys_##name) >> | ^~ >> ./arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro >> '__IA32_COND_SYSCALL' >> 257 | __IA32_COND_SYSCALL(name) >> | ^~~ >> kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' >>39 | COND_SYSCALL(io_setup); >> | ^~~~ >> ... >> >> __SYS_STUB0() and __SYS_STUBx() defined a few lines above have forward >> declarations. Let's do likewise for __COND_SYSCALL() to fix the >> warnings. >> >> Signed-off-by: Masahiro Yamada > > Tested-by: Mickaël Salaün > > Thanks to this patch we avoid multiple emails from Intel's bot when > adding new syscalls. :) > > >> --- >> >> arch/x86/include/asm/syscall_wrapper.h | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/arch/x86/include/asm/syscall_wrapper.h >> b/arch/x86/include/asm/syscall_wrapper.h >> index a84333adeef2..80c08c7d5e72 100644 >> --- a/arch/x86/include/asm/syscall_wrapper.h >> +++ b/arch/x86/include/asm/syscall_wrapper.h >> @@ -80,6 +80,7 @@ extern long __ia32_sys_ni_syscall(const struct pt_regs >> *regs); >> } >> >> #define __COND_SYSCALL(abi, name) \ >> +__weak long __##abi##_##name(const struct pt_regs *__unused); \ >> __weak long __##abi##_##name(const struct pt_regs *__unused)\ >> { \ >> return sys_ni_syscall();\ >>
Re: [PATCH 02/27] x86/syscalls: fix -Wmissing-prototypes warnings from COND_SYSCALL()
On 28/01/2021 01:50, Masahiro Yamada wrote: > Building kernel/sys_ni.c with W=1 omits tons of -Wmissing-prototypes > warnings. > > $ make W=1 kernel/sys_ni.o > [ snip ] > CC kernel/sys_ni.o > In file included from kernel/sys_ni.c:10: > ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous > prototype for '__x64_sys_io_setup' [-Wmissing-prototypes] >83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ > | ^~ > ./arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro > '__COND_SYSCALL' > 100 | __COND_SYSCALL(x64, sys_##name) > | ^~ > ./arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro > '__X64_COND_SYSCALL' > 256 | __X64_COND_SYSCALL(name) \ > | ^~ > kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' >39 | COND_SYSCALL(io_setup); > | ^~~~ > ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous > prototype for '__ia32_sys_io_setup' [-Wmissing-prototypes] >83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ > | ^~ > ./arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro > '__COND_SYSCALL' > 120 | __COND_SYSCALL(ia32, sys_##name) > | ^~ > ./arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro > '__IA32_COND_SYSCALL' > 257 | __IA32_COND_SYSCALL(name) > | ^~~ > kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' >39 | COND_SYSCALL(io_setup); > | ^~~~ > ... > > __SYS_STUB0() and __SYS_STUBx() defined a few lines above have forward > declarations. Let's do likewise for __COND_SYSCALL() to fix the > warnings. > > Signed-off-by: Masahiro Yamada Tested-by: Mickaël Salaün Thanks to this patch we avoid multiple emails from Intel's bot when adding new syscalls. :) > --- > > arch/x86/include/asm/syscall_wrapper.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/x86/include/asm/syscall_wrapper.h > b/arch/x86/include/asm/syscall_wrapper.h > index a84333adeef2..80c08c7d5e72 100644 > --- a/arch/x86/include/asm/syscall_wrapper.h > +++ b/arch/x86/include/asm/syscall_wrapper.h > @@ -80,6 +80,7 @@ extern long __ia32_sys_ni_syscall(const struct pt_regs > *regs); > } > > #define __COND_SYSCALL(abi, name)\ > + __weak long __##abi##_##name(const struct pt_regs *__unused); \ > __weak long __##abi##_##name(const struct pt_regs *__unused)\ > { \ > return sys_ni_syscall();\ >
Re: [PATCH 02/27] x86/syscalls: fix -Wmissing-prototypes warnings from COND_SYSCALL()
Hello! On 28.01.2021 3:50, Masahiro Yamada wrote: Building kernel/sys_ni.c with W=1 omits tons of -Wmissing-prototypes Emits? warnings. $ make W=1 kernel/sys_ni.o [ snip ] CC kernel/sys_ni.o In file included from kernel/sys_ni.c:10: ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_io_setup' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ ./arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~ ./arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~ kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' 39 | COND_SYSCALL(io_setup); | ^~~~ ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_sys_io_setup' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ ./arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro '__COND_SYSCALL' 120 | __COND_SYSCALL(ia32, sys_##name) | ^~ ./arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro '__IA32_COND_SYSCALL' 257 | __IA32_COND_SYSCALL(name) | ^~~ kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' 39 | COND_SYSCALL(io_setup); | ^~~~ ... __SYS_STUB0() and __SYS_STUBx() defined a few lines above have forward declarations. Let's do likewise for __COND_SYSCALL() to fix the warnings. Signed-off-by: Masahiro Yamada --- arch/x86/include/asm/syscall_wrapper.h | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/include/asm/syscall_wrapper.h b/arch/x86/include/asm/syscall_wrapper.h index a84333adeef2..80c08c7d5e72 100644 --- a/arch/x86/include/asm/syscall_wrapper.h +++ b/arch/x86/include/asm/syscall_wrapper.h @@ -80,6 +80,7 @@ extern long __ia32_sys_ni_syscall(const struct pt_regs *regs); } #define __COND_SYSCALL(abi, name) \ + __weak long __##abi##_##name(const struct pt_regs *__unused); \ __weak long __##abi##_##name(const struct pt_regs *__unused)\ Aren't these two lines identical? [...] MBR, Sergei
Re: [PATCH 02/27] x86/syscalls: fix -Wmissing-prototypes warnings from COND_SYSCALL()
On 28.01.2021 10:59, Sergei Shtylyov wrote: [...] Building kernel/sys_ni.c with W=1 omits tons of -Wmissing-prototypes Emits? warnings. $ make W=1 kernel/sys_ni.o [ snip ] CC kernel/sys_ni.o In file included from kernel/sys_ni.c:10: ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_io_setup' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ ./arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL' 100 | __COND_SYSCALL(x64, sys_##name) | ^~ ./arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL' 256 | __X64_COND_SYSCALL(name) \ | ^~ kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' 39 | COND_SYSCALL(io_setup); | ^~~~ ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_sys_io_setup' [-Wmissing-prototypes] 83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ | ^~ ./arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro '__COND_SYSCALL' 120 | __COND_SYSCALL(ia32, sys_##name) | ^~ ./arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro '__IA32_COND_SYSCALL' 257 | __IA32_COND_SYSCALL(name) | ^~~ kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' 39 | COND_SYSCALL(io_setup); | ^~~~ ... __SYS_STUB0() and __SYS_STUBx() defined a few lines above have forward declarations. Let's do likewise for __COND_SYSCALL() to fix the warnings. Signed-off-by: Masahiro Yamada --- arch/x86/include/asm/syscall_wrapper.h | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/include/asm/syscall_wrapper.h b/arch/x86/include/asm/syscall_wrapper.h index a84333adeef2..80c08c7d5e72 100644 --- a/arch/x86/include/asm/syscall_wrapper.h +++ b/arch/x86/include/asm/syscall_wrapper.h @@ -80,6 +80,7 @@ extern long __ia32_sys_ni_syscall(const struct pt_regs *regs); } #define __COND_SYSCALL(abi, name) \ + __weak long __##abi##_##name(const struct pt_regs *__unused); \ __weak long __##abi##_##name(const struct pt_regs *__unused) \ Aren't these two lines identical? Ah, got it! :-) [...] MBR, Sergei
Re: [PATCH 02/27] x86/syscalls: fix -Wmissing-prototypes warnings from COND_SYSCALL()
On Thu, Jan 28, 2021 at 9:52 AM Masahiro Yamada wrote: > > Building kernel/sys_ni.c with W=1 omits tons of -Wmissing-prototypes This is a typo. "omits" -> "emits" > warnings. > > $ make W=1 kernel/sys_ni.o > [ snip ] > CC kernel/sys_ni.o > In file included from kernel/sys_ni.c:10: > ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous > prototype for '__x64_sys_io_setup' [-Wmissing-prototypes] >83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ > | ^~ > ./arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro > '__COND_SYSCALL' > 100 | __COND_SYSCALL(x64, sys_##name) > | ^~ > ./arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro > '__X64_COND_SYSCALL' > 256 | __X64_COND_SYSCALL(name) \ > | ^~ > kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' >39 | COND_SYSCALL(io_setup); > | ^~~~ > ./arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous > prototype for '__ia32_sys_io_setup' [-Wmissing-prototypes] >83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \ > | ^~ > ./arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro > '__COND_SYSCALL' > 120 | __COND_SYSCALL(ia32, sys_##name) > | ^~ > ./arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro > '__IA32_COND_SYSCALL' > 257 | __IA32_COND_SYSCALL(name) > | ^~~ > kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL' >39 | COND_SYSCALL(io_setup); > | ^~~~ > ... > > __SYS_STUB0() and __SYS_STUBx() defined a few lines above have forward > declarations. Let's do likewise for __COND_SYSCALL() to fix the > warnings. > > Signed-off-by: Masahiro Yamada > --- > > arch/x86/include/asm/syscall_wrapper.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/x86/include/asm/syscall_wrapper.h > b/arch/x86/include/asm/syscall_wrapper.h > index a84333adeef2..80c08c7d5e72 100644 > --- a/arch/x86/include/asm/syscall_wrapper.h > +++ b/arch/x86/include/asm/syscall_wrapper.h > @@ -80,6 +80,7 @@ extern long __ia32_sys_ni_syscall(const struct pt_regs > *regs); > } > > #define __COND_SYSCALL(abi, name) \ > + __weak long __##abi##_##name(const struct pt_regs *__unused); \ > __weak long __##abi##_##name(const struct pt_regs *__unused)\ > { \ > return sys_ni_syscall();\ > -- > 2.27.0 > -- Best Regards Masahiro Yamada