Re: [PATCH v3 16/16] objtool,x86: Rewrite retpoline thunk calls

From: Nathan Chancellor
Date: Tue Jun 08 2021 - 15:25:58 EST


On 6/8/2021 11:17 AM, Peter Zijlstra wrote:
On Tue, Jun 08, 2021 at 10:29:56AM -0700, Nathan Chancellor wrote:
Unfortunately, this is the VM provided by the Windows Subsystem for Linux so
examining it is nigh-impossible :/ I am considering bisecting the transforms
that objtool does to try and figure out the one that causes the machine to
fail to boot or try to reproduce in a different hypervisor, unless you have
any other ideas.

Does breaking Windows earn points similar to breaking the binary
drivers? :-) :-)

:)

The below should kill this latest transform and would quickly confirm if
the that is causing your problem. If that's not it, what was your last
known working version?

Yes, that diff gets me back to booting. I will see if I can figure out the exact rewrite that blows everything up.

diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index e5947fbb9e7a..d0f231b9c5a1 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -1857,10 +1857,10 @@ static int decode_sections(struct objtool_file *file)
* Must be after add_special_section_alts(), since this will emit
* alternatives. Must be after add_{jump,call}_destination(), since
* those create the call insn lists.
- */
ret = arch_rewrite_retpolines(file);
if (ret)
return ret;
+ */
return 0;
}


Cheers,
Nathan