Messages in this thread | | | Date | Sun, 28 Feb 2010 23:35:31 -0800 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 0/5] x86-32: improve atomic64_t functions (v2) |
| |
On 02/26/2010 03:23 AM, Luca Barbieri wrote: > Sent patches, both to conditionally perform the test and implement the > functions for x86 and x86-64.
Yes, and with the test turned on, the kernel crashes immediately on boot on x86-64.
Some minor investigation reveals the following:
lib/atomic64.c has the wrong return value for atomic64_add_unless(). With "wrong" I mean it is the opposite sense compared to atomic_add_unless(), not just on x86 but on all architectures.
Accordingly, I have to conclude that lib/atomic64.c is buggy, and that since your test matches that bug, I will have to conclude that your x86-32 implementation is also buggy. Thus, please send patches to fix your test and your 32-bit implementations (and preferrably lib/atomic64.c too, but I can do that just fine.)
Cc: Paul Mackerras who did the generic atomic64_t implementation for verification that this is indeed a bug.
-hpa
-- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.
| |