kernel: fix ip6_tunnel compilation
[openwrt.git] / target / linux / generic / patches-4.4 / 205-backtrace_module_info.patch
1 --- a/lib/vsprintf.c
2 +++ b/lib/vsprintf.c
3 @@ -618,8 +618,10 @@ char *symbol_string(char *buf, char *end
4                     struct printf_spec spec, const char *fmt)
5  {
6         unsigned long value;
7 -#ifdef CONFIG_KALLSYMS
8         char sym[KSYM_SYMBOL_LEN];
9 +#ifndef CONFIG_KALLSYMS
10 +       struct module *mod;
11 +       int len;
12  #endif
13  
14         if (fmt[1] == 'R')
15 @@ -633,15 +635,15 @@ char *symbol_string(char *buf, char *end
16                 sprint_symbol(sym, value);
17         else
18                 sprint_symbol_no_offset(sym, value);
19 -
20 -       return string(buf, end, sym, spec);
21  #else
22 -       spec.field_width = 2 * sizeof(void *);
23 -       spec.flags |= SPECIAL | SMALL | ZEROPAD;
24 -       spec.base = 16;
25 +       len = snprintf(sym, sizeof(sym), "0x%lx", value);
26  
27 -       return number(buf, end, value, spec);
28 +       mod = __module_address(value);
29 +       if (mod)
30 +               snprintf(sym + len, sizeof(sym) - len, " [%s@%p+0x%x]",
31 +                        mod->name, mod->module_core, mod->core_size);
32  #endif
33 +       return string(buf, end, sym, spec);
34  }
35  
36  static noinline_for_stack