diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2009-10-05 23:35:03 -0300 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-10-06 12:08:08 +0200 |
commit | 818331303bc7cb914351c992d3da00aae957eba7 (patch) | |
tree | 64a2023fb783dcd241bbeb84793112c6a23e8f98 /tools | |
parent | ee949a86b3aef15845ea677aa60231008de62672 (diff) | |
download | lwn-818331303bc7cb914351c992d3da00aae957eba7.tar.gz lwn-818331303bc7cb914351c992d3da00aae957eba7.zip |
perf tools: elf_sym__is_function() should accept "zero" sized functions
Asm routines that end up having size equal to zero are not really
zero sized, and as now we do kernel_maps__fixup_sym_end, at least
for kernel routines this gets fixed.
A similar fixup needs to be done for the userspace bits as well,
but as this fixup started only because in /proc/kallsyms we don't
have the end address nor the function size, it appeared here first.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Mike Galbraith <efault@gmx.de>
LKML-Reference: <1254796503-27203-1-git-send-email-acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/util/symbol.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 559fb06210f5..47ea0609a760 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -324,8 +324,7 @@ static inline int elf_sym__is_function(const GElf_Sym *sym) { return elf_sym__type(sym) == STT_FUNC && sym->st_name != 0 && - sym->st_shndx != SHN_UNDEF && - sym->st_size != 0; + sym->st_shndx != SHN_UNDEF; } static inline int elf_sym__is_label(const GElf_Sym *sym) |