Commit ce1cbc51c ("trace-cmd: Leave out absolute addresses to fix bogus
symbol resolutions") fixed up bogus symbol resolution for 'A' type
symbols used on x86_64 for percpu offsets.

However, this check did not cover per-cpu variables used in modules,
which are generated as 'local' absolute symbols, and therefore appear as 'a' in
/proc/kallsyms.  Fix this.

Cc: Jan Kiszka <jan.kis...@siemens.com>
Signed-off-by: Julia Cartwright <ju...@ni.com>
---
 trace-util.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/trace-util.c b/trace-util.c
index 5bf591c..fc5926e 100644
--- a/trace-util.c
+++ b/trace-util.c
@@ -458,7 +458,7 @@ void parse_proc_kallsyms(struct pevent *pevent,
                 *  - arm arch that adds a lot of bogus '$a' functions
                 *  - x86-64 that reports per-cpu variable offsets as absolute
                 */
-               if (func[0] != '$' && ch != 'A')
+               if (func[0] != '$' && ch != 'A' && ch != 'a')
                        pevent_register_function(pevent, func, addr, mod);
                free(func);
                free(mod);
-- 
2.11.1

Reply via email to