On Fri, 2018-01-05 at 09:28 -0800, Linus Torvalds wrote: > > Yes, I would suggest against expecting altinstructions to have > relocation information. They are generated in a different place, so.. > > That said, I honestly like the inline version (the one that is in the > google paper first) of the retpoline more than the out-of-line one. > And that one shouldn't have any relocagtion issues, because all the > offsets are relative. > > We want to use that one for the entry stub anyway, can't we just > standardize on that one for all our assembly? Sure, that's just a case of tweaking the macros a little to do it inline instead of jumping to the thunk. I thunk judicious use of __stringify() has resolved any issues I might have had with that approach in the first place. However... > If the *compiler* uses the out-of-line version, that's a separate > thing. But for our asm cases, let's just make it all be the inline > case, ok? > > It also should simplify the whole target generation. None of this > silly "__x86.indirect_thunk.\reg" crap with different targets for > different register choices. If we're going to let the compiler use the out-of-line version (which we *want* to because otherwise we don't get to ALTERNATIVE it away as appropriate), then we still need to emit the various __x86.indirect_thunk.\reg thunks for the compiler to use anyway. At that point, there isn't a *huge* benefit to doing the retpoline inline in our own asm, when it might as well just be a jump to the thunks which exist anyway. But neither do I have an argument *against* doing so, so I'll happily tweak the NOSPEC_CALL/NOSPEC_JMP macros accordingly if you really want...