[PATCH v2 2/3] tracing: avoid -Wformat-nonliteral warning

From: Rasmus Villemoes
Date: Mon Oct 29 2018 - 18:35:55 EST


Building with -Wformat-nonliteral, gcc complains

kernel/trace/trace_output.c: In function âseq_print_symâ:
kernel/trace/trace_output.c:356:3: warning: format not a string literal, argument types not checked [-Wformat-nonliteral]
trace_seq_printf(s, fmt, name);

But seq_print_sym only has a single caller which passes "%s" as fmt, so
we might as well just use that directly. That also paves the way for
further cleanups that will actually make that format string go away
entirely.

Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
---
kernel/trace/trace_output.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
index 85ecd061c7be..f06fb899b746 100644
--- a/kernel/trace/trace_output.c
+++ b/kernel/trace/trace_output.c
@@ -339,8 +339,7 @@ static inline const char *kretprobed(const char *name)
#endif /* CONFIG_KRETPROBES */

static void
-seq_print_sym(struct trace_seq *s, const char *fmt, unsigned long address,
- bool offset)
+seq_print_sym(struct trace_seq *s, unsigned long address, bool offset)
{
char str[KSYM_SYMBOL_LEN];
#ifdef CONFIG_KALLSYMS
@@ -353,12 +352,12 @@ seq_print_sym(struct trace_seq *s, const char *fmt, unsigned long address,
name = kretprobed(str);

if (name && strlen(name)) {
- trace_seq_printf(s, fmt, name);
+ trace_seq_printf(s, "%s", name);
return;
}
#endif
snprintf(str, KSYM_SYMBOL_LEN, "0x%08lx", address);
- trace_seq_printf(s, fmt, str);
+ trace_seq_printf(s, "%s", str);
}

#ifndef CONFIG_64BIT
@@ -407,7 +406,7 @@ seq_print_ip_sym(struct trace_seq *s, unsigned long ip, unsigned long sym_flags)
goto out;
}

- seq_print_sym(s, "%s", ip, sym_flags & TRACE_ITER_SYM_OFFSET);
+ seq_print_sym(s, ip, sym_flags & TRACE_ITER_SYM_OFFSET);

if (sym_flags & TRACE_ITER_SYM_ADDR)
trace_seq_printf(s, " <" IP_FMT ">", ip);
--
2.19.1.6.gbde171bbf5