On Wed, 13 Aug 2008, Andrew Morton wrote: > > We don't need to create that local. I queued this: No, please don't. Just don't take this whole patch-series until it's cleaned up. There is absolutely no excuse for using xchg as a locking primitive. Nothing like this should be queued anywhere, it should be burned and the ashes should be scattered over the atlantic so that nobody will ever see them again. F*ck me with a spoon, if you have to use xchg() to do a trylock, why the hell isn't the unlock sequence then smp_mb(); var = 0; instead? Not that that's really right either, but at least it avoids the _ridiculous_ crap. The real solution is probably to use a spinlock and trylock/unlock. Linus