On Monday 05 December 2011 09:41:55 Benjamin Herrenschmidt wrote:
On Sun, 2011-12-04 at 22:18 +0000, Russell King - ARM Linux wrote:
.../...
And really, I believe it would be a good cleanup if all the standard definitions for atomic64 ops (like atomic64_add_negative) were also defined in include/linux/atomic.h rather than individually in every atomic*.h header throughout the kernel source, except where an arch wants to explicitly override it. Yet again, virtually all architectures define these in exactly the same way.
We have more than enough code in arch/ for any architecture to worry about, we don't need schemes to add more when there's simple and practical solutions to avoiding doing so if the right design were chosen (preferably from the outset.)
So, I'm not going to offer my ack for a change which I don't believe is the correct approach.
I agree with Russell, his approach is a lot easier to maintain long run, we should even consider converting existing definitions.
I would rather go with "the existing definitions have to converted" and this means "not by this patch". At the moment, the atomic64 stuff exist only as separate generic or arch specific implementation. It is fine that Russell King noticed that people like Arun Sharma did a lot of work to made it true for atomic_t, but atomic64_t is a little bit different right now (at least as I understand it).
Kind regards, Sven