Messages in this thread | | | Subject | Re: [PATCH v2] Linux VM workaround for Knights Landing A/D leak | From | "H. Peter Anvin" <> | Date | Tue, 14 Jun 2016 14:08:32 -0700 |
| |
On 06/14/16 14:02, Borislav Petkov wrote: > On Tue, Jun 14, 2016 at 01:54:25PM -0700, H. Peter Anvin wrote: >> There was that. It is still possible that we end up with NOP a JMP >> right before another JMP; we could perhaps make the patching code >> smarter and see if we have a JMP immediately after. > > Yeah, I still can't get reproduce that reliably - I remember seeing it > at some point but then dismissing it for another, higher-prio thing. And > now the whole memory is hazy at best. > > But, you're giving me a great idea right now - I have this kernel > disassembler tool which dumps alternative sections already and I could > teach it to look for pathological cases around the patching sites and > scream. > > Something for my TODO list when I get a quiet moment. >
It's not really pathological; the issue is that asm goto() with an unreachable clause after it doesn't tell gcc that a certain code path ought to be linear, so we tell it to fall through. However, if gcc then wants to have a jump there for whatever reason (perhaps it is part of a loop) we end up with a redundant jump, so a patch site followed by a JMP is entirely reasonable.
-hpa
| |