Re: locking/atomic: Introduce atomic_try_cmpxchg()

From: Peter Zijlstra
Date: Fri Mar 24 2017 - 16:23:02 EST


On Fri, Mar 24, 2017 at 11:45:46AM -0700, Andy Lutomirski wrote:
> After playing with it a bit, I found some of the problem: you're
> passing val into EXCEPTION_VALUE, which keeps it live. If I get rid
> of that, the generated code is great.

Right, so I needed that because I land on ud2 through 2 different paths:

- newly saturated
- use-after-free

And the exception handler can figure out which of the two by looking at
the variable, but then of course, it needs to be life.

For the full horror of how to do this, look here:

http://paste.debian.net/924190/

But I didn't just show you that, so you can't blame me for any damage
that might've done you.