On Thu, 22 Dec 2011, Linus Torvalds wrote: > As far as I can tell, there are just a couple of users of that > horrible interface, it really isn't worth it. Just remove it and > opencode it. They are actually broken on x86 ('xadd' only exists if > CONFIG_X86_XADD is on - i386 didn't have it), and while most people > probably don't care (i386? What's that?), I note that the x86 > add_return stuff doesn't take that into account. There is an #ifndef CONFIG_M386 around the implementation of these for x86. Use on i386 will not generate an xadd instructions but fallback to a generic implementation. The add_return stuff was already available with the earlier per cpu apis (local_t and percpu) that this_cpu replaces and is still available through the atomic operations. If one wants to exploit the per cpu atomicity then one may want to know what the result was. Inspecting the value is not possible later in the execution path if there are potential races on the processor through preemption as well as interrupts. The _return variants also avoid additional load instructions and thereby reduce code path size. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html