On Thu, 2018-01-04 at 01:10 -0800, Paul Turner wrote: > Apologies for the discombobulation around today's disclosure.  Obviously the > original goal was to communicate this a little more coherently, but the > unscheduled advances in the disclosure disrupted the efforts to pull this > together more cleanly. > > I wanted to open discussion the "retpoline" approach and and define its > requirements so that we can separate the core > details from questions regarding any particular implementation thereof. > > As a starting point, a full write-up describing the approach is available at: >   https://support.google.com/faqs/answer/7625886 Note that (ab)using 'ret' in this way is incompatible with CET on upcoming processors. HJ added a -mno-indirect-branch-register option to the latest round of GCC patches, which puts the branch target in a register instead of on the stack. My kernel patches (which I'm about to reconcile with Andi's tweaks and post) do the same. That means that in the cases where at runtime we want to ALTERNATIVE out the retpoline, it just turns back into a bare 'jmp *\reg'.