Re: [PATCH] WorkStruct: Implement generic UP cmpxchg() where an arch doesn't support it

From: Russell King
Date: Fri Dec 08 2006 - 14:04:50 EST


On Fri, Dec 08, 2006 at 10:46:17AM -0800, Linus Torvalds wrote:
>
>
> On Fri, 8 Dec 2006, David Howells wrote:
> >
> > In fact I think more things have LL/SC than have CMPXCHG.
>
> But you cannot expose ll/sc to C, so that's a bogus argument.

Yes you can. Well, you can on ARM at least. Between the load exclusive
you can do anything you like until you hit the store exclusive. If you
haven't touched the location (with anything other than another load
exclusive) and no other CPU has issued a load exclusive, your store
exclusive succeeds. Whether you have branches, loads or stores to
other locations, etc. None of that matters.

Not so bogus as you make out.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/