From: Josh Poimboeuf Date: Tue, 19 Mar 2019 00:09:38 +0000 (-0500) Subject: objtool: Move objtool_file struct off the stack X-Git-Tag: v5.1-rc2~8^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0c671812f152b628bd87c0af49da032cc2a2c319;p=thirdparty%2Fkernel%2Flinux.git objtool: Move objtool_file struct off the stack 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 Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/df92dcbc4b84b02ffa252f46876df125fb56e2d7.1552954176.git.jpoimboe@redhat.com --- diff --git a/tools/objtool/check.c b/tools/objtool/check.c index 0414a0d522621..5dde107083c60 100644 --- 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;