Messages in this thread | | | From | Linus Torvalds <> | Date | Mon, 8 Jan 2018 20:21:09 -0800 | Subject | Re: [PATCH 16/18] net: mpls: prevent bounds-check bypass via speculative execution |
| |
On Mon, Jan 8, 2018 at 8:13 PM, Linus Torvalds <torvalds@linux-foundation.org> wrote: > > # carry will be clear if idx >= max > cmpq %idx,%max
Bah. Other way around.
cmpq %max,%idx
I'm a moron.
> # mask will be clear if carry was clear, ~0 otherwise > sbbq %mask,%mask > > to generate mask directly. I might have screwed that up. Worth perhaps trying?
More importantly, worth _testing_ and fixing my hand-waving "asm like this" crap.
But I do think that simple two-instruction cmpq/sbbq sequence could get it right in just two trivial ALU instructions.
Linus
| |