Changeset 45665


Ignore:
Timestamp:
2015-05-10T15:16:40+02:00 (3 years ago)
Author:
nbd
Message:

kernel: fix regression in backtrace module info change (#19631)

Signed-off-by: Felix Fietkau <nbd@…>

Location:
trunk/target/linux/generic
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic/patches-3.18/205-backtrace_module_info.patch

    r45655 r45665  
    11--- a/lib/vsprintf.c 
    22+++ b/lib/vsprintf.c 
    3 @@ -613,10 +613,12 @@ static noinline_for_stack 
    4  char *symbol_string(char *buf, char *end, void *ptr, 
     3@@ -614,8 +614,10 @@ char *symbol_string(char *buf, char *end 
    54                    struct printf_spec spec, const char *fmt) 
    65 { 
    7 +#ifndef CONFIG_KALLSYMS 
    8 +       struct module *mod; 
    9 +#endif 
    106        unsigned long value; 
    117-#ifdef CONFIG_KALLSYMS 
    128        char sym[KSYM_SYMBOL_LEN]; 
    13 -#endif 
     9+#ifndef CONFIG_KALLSYMS 
     10+       struct module *mod; 
    1411+       int len; 
     12 #endif 
    1513  
    1614        if (fmt[1] == 'R') 
    17                 ptr = __builtin_extract_return_addr(ptr); 
    18 @@ -630,13 +632,15 @@ char *symbol_string(char *buf, char *end 
     15@@ -629,15 +631,15 @@ char *symbol_string(char *buf, char *end 
     16                sprint_symbol(sym, value); 
    1917        else 
    2018                sprint_symbol_no_offset(sym, value); 
    21   
     19- 
    2220-       return string(buf, end, sym, spec); 
    2321 #else 
     
    2624-       spec.base = 16; 
    2725+       len = snprintf(sym, sizeof(sym), "0x%lx", value); 
    28 + 
     26  
     27-       return number(buf, end, value, spec); 
    2928+       mod = __module_address(value); 
    3029+       if (mod) 
    3130+               snprintf(sym + len, sizeof(sym) - len, " [%s@%p+0x%x]", 
    3231+                        mod->name, mod->module_core, mod->core_size); 
    33   
    34 -       return number(buf, end, value, spec); 
     32 #endif 
    3533+       return string(buf, end, sym, spec); 
    36  #endif 
    3734 } 
    3835  
     36 static noinline_for_stack 
  • trunk/target/linux/generic/patches-4.0/205-backtrace_module_info.patch

    r45655 r45665  
    11--- a/lib/vsprintf.c 
    22+++ b/lib/vsprintf.c 
    3 @@ -614,10 +614,12 @@ static noinline_for_stack 
    4  char *symbol_string(char *buf, char *end, void *ptr, 
     3@@ -615,8 +615,10 @@ char *symbol_string(char *buf, char *end 
    54                    struct printf_spec spec, const char *fmt) 
    65 { 
    7 +#ifndef CONFIG_KALLSYMS 
    8 +       struct module *mod; 
    9 +#endif 
    106        unsigned long value; 
    117-#ifdef CONFIG_KALLSYMS 
    128        char sym[KSYM_SYMBOL_LEN]; 
    13 -#endif 
     9+#ifndef CONFIG_KALLSYMS 
     10+       struct module *mod; 
    1411+       int len; 
     12 #endif 
    1513  
    1614        if (fmt[1] == 'R') 
    17                 ptr = __builtin_extract_return_addr(ptr); 
    18 @@ -631,13 +633,15 @@ char *symbol_string(char *buf, char *end 
     15@@ -630,15 +632,15 @@ char *symbol_string(char *buf, char *end 
     16                sprint_symbol(sym, value); 
    1917        else 
    2018                sprint_symbol_no_offset(sym, value); 
    21   
     19- 
    2220-       return string(buf, end, sym, spec); 
    2321 #else 
     
    2624-       spec.base = 16; 
    2725+       len = snprintf(sym, sizeof(sym), "0x%lx", value); 
    28 + 
     26  
     27-       return number(buf, end, value, spec); 
    2928+       mod = __module_address(value); 
    3029+       if (mod) 
    3130+               snprintf(sym + len, sizeof(sym) - len, " [%s@%p+0x%x]", 
    3231+                        mod->name, mod->module_core, mod->core_size); 
    33   
    34 -       return number(buf, end, value, spec); 
     32 #endif 
    3533+       return string(buf, end, sym, spec); 
    36  #endif 
    3734 } 
    3835  
     36 static noinline_for_stack 
Note: See TracChangeset for help on using the changeset viewer.