projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9e98c67
)
objtool: Move objtool_file struct off the stack
author
Josh Poimboeuf
<
[email protected]
>
Tue, 19 Mar 2019 00:09:38 +0000
(19:09 -0500)
committer
Thomas Gleixner
<
[email protected]
>
Thu, 21 Mar 2019 11:02:19 +0000
(12:02 +0100)
Objtool uses over 512k of stack, thanks to the hash table embedded in
the objtool_file struct. This causes an unnecessarily large stack
allocation and breaks users with low stack limits.
Move the struct off the stack.
Fixes: 042ba73fe7eb ("objtool: Add several performance improvements")
Reported-by: Vassili Karpov <
[email protected]
>
Signed-off-by: Josh Poimboeuf <
[email protected]
>
Signed-off-by: Thomas Gleixner <
[email protected]
>
Cc: Peter Zijlstra <
[email protected]
>
Cc:
[email protected]
Link:
https://lkml.kernel.org/r/df92dcbc4b84b02ffa252f46876df125fb56e2d7.1552954176.git.jpoimboe@redhat.com
tools/objtool/check.c
patch
|
blob
|
history
diff --git
a/tools/objtool/check.c
b/tools/objtool/check.c
index 0414a0d522621d4ca973240979e89c07d6cd4f8a..5dde107083c60bc8dd12538a2838de73c8b1470c 100644
(file)
--- a/
tools/objtool/check.c
+++ b/
tools/objtool/check.c
@@
-2184,9
+2184,10
@@
static void cleanup(struct objtool_file *file)
elf_close(file->elf);
}
+static struct objtool_file file;
+
int check(const char *_objname, bool orc)
{
- struct objtool_file file;
int ret, warnings = 0;
objname = _objname;