aarch64: filter $x from kallsyms
authorKyle McMartin <kyle@redhat.com>
Tue, 16 Sep 2014 21:37:18 +0000 (22:37 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 2 Oct 2014 16:01:51 +0000 (17:01 +0100)
Similar to ARM, AArch64 is generating $x and $d syms... which isn't
terribly helpful when looking at %pF output and the like. Filter those
out in kallsyms, modpost and when looking at module symbols.

Seems simplest since none of these check EM_ARM anyway, to just add it
to the strchr used, rather than trying to make things overly
complicated.

initcall_debug improves:
dmesg_before.txt: initcall $x+0x0/0x154 [sg] returned 0 after 26331 usecs
dmesg_after.txt: initcall init_sg+0x0/0x154 [sg] returned 0 after 15461 usecs

Signed-off-by: Kyle McMartin <kyle@redhat.com>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
kernel/module.c
scripts/kallsyms.c
scripts/mod/modpost.c

index 03214bd288e9a90876aa5f1c92b8ebd596520e54..3d52936031cc8784e2f779a5d53324a0f02aabc5 100644 (file)
@@ -3388,7 +3388,7 @@ static inline int is_arm_mapping_symbol(const char *str)
 {
        if (str[0] == '.' && str[1] == 'L')
                return true;
-       return str[0] == '$' && strchr("atd", str[1])
+       return str[0] == '$' && strchr("axtd", str[1])
               && (str[2] == '\0' || str[2] == '.');
 }
 
index dc7aa45e80ce5e1acd4031e9774aabff7217b492..c6d33bd15b04acd0ea4fd56d59289d8e983a1c9f 100644 (file)
@@ -84,7 +84,7 @@ static void usage(void)
  */
 static inline int is_arm_mapping_symbol(const char *str)
 {
-       return str[0] == '$' && strchr("atd", str[1])
+       return str[0] == '$' && strchr("axtd", str[1])
               && (str[2] == '\0' || str[2] == '.');
 }
 
index 091d90573b63131ec0f815e0ca7b390549f94ea8..3017ec20e9f8d0003c9b7c2b409f770dcc089b29 100644 (file)
@@ -1146,7 +1146,7 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
 
 static inline int is_arm_mapping_symbol(const char *str)
 {
-       return str[0] == '$' && strchr("atd", str[1])
+       return str[0] == '$' && strchr("axtd", str[1])
               && (str[2] == '\0' || str[2] == '.');
 }