Message ID | 20230516154605.517690-6-arnd@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 1b9c3ddcec6a55e15d3e38e7405e2d078db02020 |
Headers | show |
Series | ARM: address -Wmissing-prototype warnings | expand |
On Tue, 16 May 2023 17:45:54 +0200 Arnd Bergmann <arnd@kernel.org> wrote: > From: Arnd Bergmann <arnd@arndb.de> > > checker_stack_use_t32strd() and kprobe_handler() can be made static since > they are not used from other files, while coverage_start_registers() > and __kprobes_test_case() are used from assembler code, and just need > a declaration to avoid a warning with the global definition. > > arch/arm/probes/kprobes/checkers-common.c:43:18: error: no previous prototype for 'checker_stack_use_t32strd' > arch/arm/probes/kprobes/core.c:236:16: error: no previous prototype for 'kprobe_handler' > arch/arm/probes/kprobes/test-core.c:723:10: error: no previous prototype for 'coverage_start_registers' > arch/arm/probes/kprobes/test-core.c:918:14: error: no previous prototype for '__kprobes_test_case_start' > arch/arm/probes/kprobes/test-core.c:952:14: error: no previous prototype for '__kprobes_test_case_end_16' > arch/arm/probes/kprobes/test-core.c:967:14: error: no previous prototype for '__kprobes_test_case_end_32' > > Fixes: 6624cf651f1a ("ARM: kprobes: collects stack consumption for store instructions") > Fixes: 454f3e132d05 ("ARM/kprobes: Remove jprobe arm implementation") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Thank you for fixing warnings! Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > --- > arch/arm/probes/kprobes/checkers-common.c | 2 +- > arch/arm/probes/kprobes/core.c | 2 +- > arch/arm/probes/kprobes/opt-arm.c | 2 -- > arch/arm/probes/kprobes/test-core.c | 2 +- > arch/arm/probes/kprobes/test-core.h | 4 ++++ > 5 files changed, 7 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/probes/kprobes/checkers-common.c b/arch/arm/probes/kprobes/checkers-common.c > index 4d720990cf2a..eba7ac4725c0 100644 > --- a/arch/arm/probes/kprobes/checkers-common.c > +++ b/arch/arm/probes/kprobes/checkers-common.c > @@ -40,7 +40,7 @@ enum probes_insn checker_stack_use_imm_0xx(probes_opcode_t insn, > * Different from other insn uses imm8, the real addressing offset of > * STRD in T32 encoding should be imm8 * 4. See ARMARM description. > */ > -enum probes_insn checker_stack_use_t32strd(probes_opcode_t insn, > +static enum probes_insn checker_stack_use_t32strd(probes_opcode_t insn, > struct arch_probes_insn *asi, > const struct decode_header *h) > { > diff --git a/arch/arm/probes/kprobes/core.c b/arch/arm/probes/kprobes/core.c > index 88999ed2cfc4..3ee0e3024ff0 100644 > --- a/arch/arm/probes/kprobes/core.c > +++ b/arch/arm/probes/kprobes/core.c > @@ -233,7 +233,7 @@ singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb) > * kprobe, and that level is reserved for user kprobe handlers, so we can't > * risk encountering a new kprobe in an interrupt handler. > */ > -void __kprobes kprobe_handler(struct pt_regs *regs) > +static void __kprobes kprobe_handler(struct pt_regs *regs) > { > struct kprobe *p, *cur; > struct kprobe_ctlblk *kcb; > diff --git a/arch/arm/probes/kprobes/opt-arm.c b/arch/arm/probes/kprobes/opt-arm.c > index dbef34ed933f..7f65048380ca 100644 > --- a/arch/arm/probes/kprobes/opt-arm.c > +++ b/arch/arm/probes/kprobes/opt-arm.c > @@ -145,8 +145,6 @@ __arch_remove_optimized_kprobe(struct optimized_kprobe *op, int dirty) > } > } > > -extern void kprobe_handler(struct pt_regs *regs); > - > static void > optimized_callback(struct optimized_kprobe *op, struct pt_regs *regs) > { > diff --git a/arch/arm/probes/kprobes/test-core.c b/arch/arm/probes/kprobes/test-core.c > index c562832b8627..171c7076b89f 100644 > --- a/arch/arm/probes/kprobes/test-core.c > +++ b/arch/arm/probes/kprobes/test-core.c > @@ -720,7 +720,7 @@ static const char coverage_register_lookup[16] = { > [REG_TYPE_NOSPPCX] = COVERAGE_ANY_REG | COVERAGE_SP, > }; > > -unsigned coverage_start_registers(const struct decode_header *h) > +static unsigned coverage_start_registers(const struct decode_header *h) > { > unsigned regs = 0; > int i; > diff --git a/arch/arm/probes/kprobes/test-core.h b/arch/arm/probes/kprobes/test-core.h > index 56ad3c0aaeea..c7297037c162 100644 > --- a/arch/arm/probes/kprobes/test-core.h > +++ b/arch/arm/probes/kprobes/test-core.h > @@ -454,3 +454,7 @@ void kprobe_thumb32_test_cases(void); > #else > void kprobe_arm_test_cases(void); > #endif > + > +void __kprobes_test_case_start(void); > +void __kprobes_test_case_end_16(void); > +void __kprobes_test_case_end_32(void); > -- > 2.39.2 >
diff --git a/arch/arm/probes/kprobes/checkers-common.c b/arch/arm/probes/kprobes/checkers-common.c index 4d720990cf2a..eba7ac4725c0 100644 --- a/arch/arm/probes/kprobes/checkers-common.c +++ b/arch/arm/probes/kprobes/checkers-common.c @@ -40,7 +40,7 @@ enum probes_insn checker_stack_use_imm_0xx(probes_opcode_t insn, * Different from other insn uses imm8, the real addressing offset of * STRD in T32 encoding should be imm8 * 4. See ARMARM description. */ -enum probes_insn checker_stack_use_t32strd(probes_opcode_t insn, +static enum probes_insn checker_stack_use_t32strd(probes_opcode_t insn, struct arch_probes_insn *asi, const struct decode_header *h) { diff --git a/arch/arm/probes/kprobes/core.c b/arch/arm/probes/kprobes/core.c index 88999ed2cfc4..3ee0e3024ff0 100644 --- a/arch/arm/probes/kprobes/core.c +++ b/arch/arm/probes/kprobes/core.c @@ -233,7 +233,7 @@ singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb) * kprobe, and that level is reserved for user kprobe handlers, so we can't * risk encountering a new kprobe in an interrupt handler. */ -void __kprobes kprobe_handler(struct pt_regs *regs) +static void __kprobes kprobe_handler(struct pt_regs *regs) { struct kprobe *p, *cur; struct kprobe_ctlblk *kcb; diff --git a/arch/arm/probes/kprobes/opt-arm.c b/arch/arm/probes/kprobes/opt-arm.c index dbef34ed933f..7f65048380ca 100644 --- a/arch/arm/probes/kprobes/opt-arm.c +++ b/arch/arm/probes/kprobes/opt-arm.c @@ -145,8 +145,6 @@ __arch_remove_optimized_kprobe(struct optimized_kprobe *op, int dirty) } } -extern void kprobe_handler(struct pt_regs *regs); - static void optimized_callback(struct optimized_kprobe *op, struct pt_regs *regs) { diff --git a/arch/arm/probes/kprobes/test-core.c b/arch/arm/probes/kprobes/test-core.c index c562832b8627..171c7076b89f 100644 --- a/arch/arm/probes/kprobes/test-core.c +++ b/arch/arm/probes/kprobes/test-core.c @@ -720,7 +720,7 @@ static const char coverage_register_lookup[16] = { [REG_TYPE_NOSPPCX] = COVERAGE_ANY_REG | COVERAGE_SP, }; -unsigned coverage_start_registers(const struct decode_header *h) +static unsigned coverage_start_registers(const struct decode_header *h) { unsigned regs = 0; int i; diff --git a/arch/arm/probes/kprobes/test-core.h b/arch/arm/probes/kprobes/test-core.h index 56ad3c0aaeea..c7297037c162 100644 --- a/arch/arm/probes/kprobes/test-core.h +++ b/arch/arm/probes/kprobes/test-core.h @@ -454,3 +454,7 @@ void kprobe_thumb32_test_cases(void); #else void kprobe_arm_test_cases(void); #endif + +void __kprobes_test_case_start(void); +void __kprobes_test_case_end_16(void); +void __kprobes_test_case_end_32(void);