From: Matthew Wilcox Date: Wed, 12 Dec 2018 19:11:23 +0000 (-0500) Subject: printf: Convert symbol_string to printf_state X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=df2f0b4968c0df88b3db559f53934bc33a46aa22;p=users%2Fwilly%2Flinux.git printf: Convert symbol_string to printf_state Signed-off-by: Matthew Wilcox --- diff --git a/lib/vsprintf.c b/lib/vsprintf.c index 7fadfd514e9f..0d62ad5093c8 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -785,29 +785,29 @@ char *bdev_name(struct printf_state *ps, struct block_device *bdev) #endif static noinline_for_stack -char *symbol_string(char *buf, char *end, void *ptr, - struct printf_spec spec, const char *fmt) +char *symbol_string(struct printf_state *ps, void *ptr) { unsigned long value; #ifdef CONFIG_KALLSYMS char sym[KSYM_SYMBOL_LEN]; #endif - if (fmt[1] == 'R') + if (ps->fmt[1] == 'R') ptr = __builtin_extract_return_addr(ptr); value = (unsigned long)ptr; #ifdef CONFIG_KALLSYMS - if (*fmt == 'B') + if (*ps->fmt == 'B') sprint_backtrace(sym, value); - else if (*fmt != 'f' && *fmt != 's') + else if (*ps->fmt != 'f' && *ps->fmt != 's') sprint_symbol(sym, value); else sprint_symbol_no_offset(sym, value); - return string(buf, end, sym, spec); + printf_string(ps, sym); + return ps->buf; #else - return special_hex_number(buf, end, value, sizeof(void *)); + return special_hex_number(ps->buf, ps->end, value, sizeof(void *)); #endif } @@ -1888,7 +1888,7 @@ char *pointer(struct printf_state *ps, void *ptr) ptr = dereference_symbol_descriptor(ptr); /* Fallthrough */ case 'B': - return symbol_string(buf, end, ptr, spec, fmt); + return symbol_string(ps, ptr); case 'R': case 'r': return resource_string(buf, end, ptr, spec, fmt);