All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] tracing: merge seq_print_sym_short() and seq_print_sym_offset()
@ 2018-10-26 21:13 Rasmus Villemoes
  2018-10-26 21:13 ` [PATCH 2/3] tracing: avoid -Wformat-nonliteral warning Rasmus Villemoes
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Rasmus Villemoes @ 2018-10-26 21:13 UTC (permalink / raw)
  To: Steven Rostedt, Ingo Molnar; +Cc: Rasmus Villemoes, linux-kernel

These two functions are nearly identical, so we can avoid some code
duplication by moving the conditional into a common implementation.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
 kernel/trace/trace_output.c | 34 +++++++---------------------------
 1 file changed, 7 insertions(+), 27 deletions(-)

diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
index 6e6cc64faa38..501311dcfca6 100644
--- a/kernel/trace/trace_output.c
+++ b/kernel/trace/trace_output.c
@@ -339,34 +339,17 @@ static inline const char *kretprobed(const char *name)
 #endif /* CONFIG_KRETPROBES */
 
 static void
-seq_print_sym_short(struct trace_seq *s, const char *fmt, unsigned long address)
+seq_print_sym(struct trace_seq *s, const char *fmt, unsigned long address,
+	      bool with_offset)
 {
 	char str[KSYM_SYMBOL_LEN];
 #ifdef CONFIG_KALLSYMS
 	const char *name;
 
-	kallsyms_lookup(address, NULL, NULL, NULL, str);
-
-	name = kretprobed(str);
-
-	if (name && strlen(name)) {
-		trace_seq_printf(s, fmt, name);
-		return;
-	}
-#endif
-	snprintf(str, KSYM_SYMBOL_LEN, "0x%08lx", address);
-	trace_seq_printf(s, fmt, str);
-}
-
-static void
-seq_print_sym_offset(struct trace_seq *s, const char *fmt,
-		     unsigned long address)
-{
-	char str[KSYM_SYMBOL_LEN];
-#ifdef CONFIG_KALLSYMS
-	const char *name;
-
-	sprint_symbol(str, address);
+	if (with_offset)
+		sprint_symbol(str, address);
+	else
+		kallsyms_lookup(address, NULL, NULL, NULL, str);
 	name = kretprobed(str);
 
 	if (name && strlen(name)) {
@@ -424,10 +407,7 @@ seq_print_ip_sym(struct trace_seq *s, unsigned long ip, unsigned long sym_flags)
 		goto out;
 	}
 
-	if (sym_flags & TRACE_ITER_SYM_OFFSET)
-		seq_print_sym_offset(s, "%s", ip);
-	else
-		seq_print_sym_short(s, "%s", ip);
+	seq_print_sym(s, "%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


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-10-31 11:45 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-26 21:13 [PATCH 1/3] tracing: merge seq_print_sym_short() and seq_print_sym_offset() Rasmus Villemoes
2018-10-26 21:13 ` [PATCH 2/3] tracing: avoid -Wformat-nonliteral warning Rasmus Villemoes
2018-10-26 21:13 ` [PATCH 3/3] tracing: simplify printf'ing in seq_print_sym Rasmus Villemoes
2018-10-26 21:41 ` [PATCH 1/3] tracing: merge seq_print_sym_short() and seq_print_sym_offset() Steven Rostedt
2018-10-29 22:35 ` [PATCH v2 0/3] tracing: a few simplifying patches Rasmus Villemoes
2018-10-29 22:35   ` [PATCH v2 1/3] tracing: merge seq_print_sym_short() and seq_print_sym_offset() Rasmus Villemoes
2018-10-29 22:35   ` [PATCH v2 2/3] tracing: avoid -Wformat-nonliteral warning Rasmus Villemoes
2018-10-29 22:35   ` [PATCH v2 3/3] tracing: simplify printf'ing in seq_print_sym Rasmus Villemoes
2018-10-31 11:45   ` [PATCH v2 0/3] tracing: a few simplifying patches Steven Rostedt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.