kernel: bump 5.4 to 5.4.43
[oweals/openwrt.git] / target / linux / generic / pending-5.4 / 205-backtrace_module_info.patch
1 From: Felix Fietkau <nbd@nbd.name>
2 Subject: kernel: when KALLSYMS is disabled, print module address + size for matching backtrace entries
3
4 [john@phrozen.org: felix will add this to his upstream queue]
5
6 lede-commit 53827cdc824556cda910b23ce5030c363b8f1461
7 Signed-off-by: Felix Fietkau <nbd@nbd.name>
8 ---
9  lib/vsprintf.c | 15 +++++++++++----
10  1 file changed, 11 insertions(+), 4 deletions(-)
11
12 --- a/lib/vsprintf.c
13 +++ b/lib/vsprintf.c
14 @@ -914,8 +914,10 @@ char *symbol_string(char *buf, char *end
15                     struct printf_spec spec, const char *fmt)
16  {
17         unsigned long value;
18 -#ifdef CONFIG_KALLSYMS
19         char sym[KSYM_SYMBOL_LEN];
20 +#ifndef CONFIG_KALLSYMS
21 +       struct module *mod;
22 +       int len;
23  #endif
24  
25         if (fmt[1] == 'R')
26 @@ -932,8 +934,14 @@ char *symbol_string(char *buf, char *end
27  
28         return string_nocheck(buf, end, sym, spec);
29  #else
30 -       return special_hex_number(buf, end, value, sizeof(void *));
31 +       len = snprintf(sym, sizeof(sym), "0x%lx", value);
32 +       mod = __module_address(value);
33 +       if (mod)
34 +               snprintf(sym + len, sizeof(sym) - len, " [%s@%p+0x%x]",
35 +                        mod->name, mod->core_layout.base,
36 +                        mod->core_layout.size);
37  #endif
38 +       return string(buf, end, sym, spec);
39  }
40  
41  static const struct printf_spec default_str_spec = {