Message ID | 20181208154624.6504-1-malat@debian.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 5c74f79958682fccd82a6029c53859d1dab3b239 |
Headers | show |
Series | powerpc/ptrace: Add prototype for function pt_regs_check | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | next/apply_patch Successfully applied |
snowpatch_ozlabs/build-ppc64le | success | build succeded & removed 0 sparse warning(s) |
snowpatch_ozlabs/build-ppc64be | success | build succeded & removed 0 sparse warning(s) |
snowpatch_ozlabs/build-ppc64e | success | build succeded & removed 1 sparse warning(s) |
snowpatch_ozlabs/build-pmac32 | success | build succeded & removed 1 sparse warning(s) |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 10 lines checked |
On Sat, Dec 8, 2018 at 4:46 PM Mathieu Malaterre <malat@debian.org> wrote: > > `pt_regs_check` is a dummy function, its purpose is to break the build > if struct pt_regs and struct user_pt_regs don't match. > > This function has no functionnal purpose, and will get eliminated at > link time or after init depending on CONFIG_LD_DEAD_CODE_DATA_ELIMINATION > > This commit adds a prototype to fix warning at W=1: > > arch/powerpc/kernel/ptrace.c:3339:13: error: no previous prototype for ‘pt_regs_check’ [-Werror=missing-prototypes] > > Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr> > Signed-off-by: Mathieu Malaterre <malat@debian.org> > --- > arch/powerpc/kernel/ptrace.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c > index a398999d0770..341c0060b4c8 100644 > --- a/arch/powerpc/kernel/ptrace.c > +++ b/arch/powerpc/kernel/ptrace.c > @@ -3338,6 +3338,10 @@ void do_syscall_trace_leave(struct pt_regs *regs) > user_enter(); > } > > +void __init pt_regs_check(void); > +/* dummy function, its purpose is to break the build if struct pt_regs and > + * struct user_pt_regs don't match. > + */ Another trick which seems to work with GCC is: -void __init pt_regs_check(void) +static inline void __init pt_regs_check(void) > void __init pt_regs_check(void) > { > BUILD_BUG_ON(offsetof(struct pt_regs, gpr) != > -- > 2.19.2 >
Le 15/02/2019 à 09:11, Mathieu Malaterre a écrit : > On Sat, Dec 8, 2018 at 4:46 PM Mathieu Malaterre <malat@debian.org> wrote: >> >> `pt_regs_check` is a dummy function, its purpose is to break the build >> if struct pt_regs and struct user_pt_regs don't match. >> >> This function has no functionnal purpose, and will get eliminated at >> link time or after init depending on CONFIG_LD_DEAD_CODE_DATA_ELIMINATION >> >> This commit adds a prototype to fix warning at W=1: >> >> arch/powerpc/kernel/ptrace.c:3339:13: error: no previous prototype for ‘pt_regs_check’ [-Werror=missing-prototypes] >> >> Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr> >> Signed-off-by: Mathieu Malaterre <malat@debian.org> >> --- >> arch/powerpc/kernel/ptrace.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c >> index a398999d0770..341c0060b4c8 100644 >> --- a/arch/powerpc/kernel/ptrace.c >> +++ b/arch/powerpc/kernel/ptrace.c >> @@ -3338,6 +3338,10 @@ void do_syscall_trace_leave(struct pt_regs *regs) >> user_enter(); >> } >> >> +void __init pt_regs_check(void); >> +/* dummy function, its purpose is to break the build if struct pt_regs and >> + * struct user_pt_regs don't match. >> + */ > > Another trick which seems to work with GCC is: > > -void __init pt_regs_check(void) > +static inline void __init pt_regs_check(void) Does this really work ? Did you test to ensure that the BUILD_BUG_ON still detect mismatch between struct pt_regs and struct user_pt_regs ? Christophe > >> void __init pt_regs_check(void) >> { >> BUILD_BUG_ON(offsetof(struct pt_regs, gpr) != >> -- >> 2.19.2 >>
On Fri, Feb 15, 2019 at 9:21 AM Christophe Leroy <christophe.leroy@c-s.fr> wrote: > > > > Le 15/02/2019 à 09:11, Mathieu Malaterre a écrit : > > On Sat, Dec 8, 2018 at 4:46 PM Mathieu Malaterre <malat@debian.org> wrote: > >> > >> `pt_regs_check` is a dummy function, its purpose is to break the build > >> if struct pt_regs and struct user_pt_regs don't match. > >> > >> This function has no functionnal purpose, and will get eliminated at > >> link time or after init depending on CONFIG_LD_DEAD_CODE_DATA_ELIMINATION > >> > >> This commit adds a prototype to fix warning at W=1: > >> > >> arch/powerpc/kernel/ptrace.c:3339:13: error: no previous prototype for ‘pt_regs_check’ [-Werror=missing-prototypes] > >> > >> Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr> > >> Signed-off-by: Mathieu Malaterre <malat@debian.org> > >> --- > >> arch/powerpc/kernel/ptrace.c | 4 ++++ > >> 1 file changed, 4 insertions(+) > >> > >> diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c > >> index a398999d0770..341c0060b4c8 100644 > >> --- a/arch/powerpc/kernel/ptrace.c > >> +++ b/arch/powerpc/kernel/ptrace.c > >> @@ -3338,6 +3338,10 @@ void do_syscall_trace_leave(struct pt_regs *regs) > >> user_enter(); > >> } > >> > >> +void __init pt_regs_check(void); > >> +/* dummy function, its purpose is to break the build if struct pt_regs and > >> + * struct user_pt_regs don't match. > >> + */ > > > > Another trick which seems to work with GCC is: > > > > -void __init pt_regs_check(void) > > +static inline void __init pt_regs_check(void) > > Does this really work ? Did you test to ensure that the BUILD_BUG_ON > still detect mismatch between struct pt_regs and struct user_pt_regs ? > My bad, I was unaware of GCC behavior for static inline in this case. Sorry for the noise. Original ugly patch does work though. > > > > >> void __init pt_regs_check(void) > >> { > >> BUILD_BUG_ON(offsetof(struct pt_regs, gpr) != > >> -- > >> 2.19.2 > >>
On Sat, 2018-12-08 at 15:46:23 UTC, Mathieu Malaterre wrote: > `pt_regs_check` is a dummy function, its purpose is to break the build > if struct pt_regs and struct user_pt_regs don't match. > > This function has no functionnal purpose, and will get eliminated at > link time or after init depending on CONFIG_LD_DEAD_CODE_DATA_ELIMINATION > > This commit adds a prototype to fix warning at W=1: > > arch/powerpc/kernel/ptrace.c:3339:13: error: no previous prototype for ‘pt_regs_check’ [-Werror=missing-prototypes] > > Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr> > Signed-off-by: Mathieu Malaterre <malat@debian.org> Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/5c74f79958682fccd82a6029c53859d1dab3b239 cheers
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index a398999d0770..341c0060b4c8 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c @@ -3338,6 +3338,10 @@ void do_syscall_trace_leave(struct pt_regs *regs) user_enter(); } +void __init pt_regs_check(void); +/* dummy function, its purpose is to break the build if struct pt_regs and + * struct user_pt_regs don't match. + */ void __init pt_regs_check(void) { BUILD_BUG_ON(offsetof(struct pt_regs, gpr) !=
`pt_regs_check` is a dummy function, its purpose is to break the build if struct pt_regs and struct user_pt_regs don't match. This function has no functionnal purpose, and will get eliminated at link time or after init depending on CONFIG_LD_DEAD_CODE_DATA_ELIMINATION This commit adds a prototype to fix warning at W=1: arch/powerpc/kernel/ptrace.c:3339:13: error: no previous prototype for ‘pt_regs_check’ [-Werror=missing-prototypes] Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Mathieu Malaterre <malat@debian.org> --- arch/powerpc/kernel/ptrace.c | 4 ++++ 1 file changed, 4 insertions(+)