On Fri, 2018-01-05 at 13:56 +0000, Woodhouse, David wrote: > > At some point during this whole painful mess, I had come to the > conclusion that having relocations in altinstr didn't work, and that's > why I had X86_xx_NO_RETPOLINE instead of X86_xx_RETPOLINE. I now think > that something else was wrong when I was testing that, and relocs in > altinstr do work. So sure, X86_FEATURE_RETPOLINE ought to work. I can > change that round, and it's simpler for the IBRS patch set to take it > into account and set it when appropriate. +bpetkov Nope, alternatives are broken. Only a jmp as the *first* opcode of altinstr gets handled by recompute_jump(), while any subsequent insn is just copied untouched. To fix that and handle every instruction, the alternative code would need to know about instruction lengths. I think we need to stick with the inverted X86_FEATURE_NO_RETPOLINE flag for the moment, and not tie it to a complex bugfix there.