summaryrefslogtreecommitdiffstats
path: root/tools/objtool
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2020-03-23 21:11:14 +0100
committerIngo Molnar <mingo@kernel.org>2020-04-22 10:53:51 +0200
commitda837bd6f1994f780325649e8eee7d9b01c5ee4d (patch)
tree04502b674e4276167225554e8a192d34c0d17b34 /tools/objtool
parent6804c1afd794c8135351faaa69e1503ee11393ac (diff)
downloadlinux-da837bd6f1994f780325649e8eee7d9b01c5ee4d.tar.gz
linux-da837bd6f1994f780325649e8eee7d9b01c5ee4d.tar.bz2
linux-da837bd6f1994f780325649e8eee7d9b01c5ee4d.zip
objtool: Avoid iterating !text section symbols
validate_functions() iterates all sections their symbols; this is pointless to do for !text sections as they won't have instructions anyway. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Miroslav Benes <mbenes@suse.cz> Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com> Acked-by: Josh Poimboeuf <jpoimboe@redhat.com> Link: https://lkml.kernel.org/r/20200416115119.346582716@infradead.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/objtool')
-rw-r--r--tools/objtool/check.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 923652ba5f9a..e201aa1d01f5 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -2551,8 +2551,12 @@ static int validate_functions(struct objtool_file *file)
struct section *sec;
int warnings = 0;
- for_each_sec(file, sec)
+ for_each_sec(file, sec) {
+ if (!(sec->sh.sh_flags & SHF_EXECINSTR))
+ continue;
+
warnings += validate_section(file, sec);
+ }
return warnings;
}