Re: alpha: futex regression bisected

From
Michael Cree <hidden>
Date
2012-03-02 23:40:31
Also in
lkml
Reply to
Andrew Morton, 2012-03-02
On 03/03/12 11:36, Andrew Morton wrote:
On Mon, 27 Feb 2012 19:48:28 +1300
Michael Cree [off-list ref] wrote:
quoted
quoted
There is no 32-bit compare instruction.  These are implemented by
consistently extending the values to a 64-bit type.  Since the
load instruction sign-extends, we want to sign-extend the other
quantity as well (despite the fact it's logically unsigned).

So:

-        :       "r"(uaddr), "r"((long)oldval), "r"(newval)
+        :       "r"(uaddr), "r"((long)(int)oldval), "r"(newval)

should do the trick.
Thanks, that fixes it.  Will you formally submit a patch with commit
message or should I?

You can have at least a Reviewed-by, or even an
Acked-by: Phil Carmody <redacted>
who correctly analysed the problem in response to when I suggested the
fix on the debian-alpha email list without explanation.
Seems that I am an alpha hacker!  This?

From: Andrew Morton <akpm@linux-foundation.org>
Subject: alpha: fix 32/64-bit bug in futex support
Thanks for attending to this!  Matt advises that he is still working on
getting his alpha-next queue back into action since the big kernel.org
hack so you picking it up is just the ticket.

Just to note that the futex fix fixes the glibc test suite failures and
the pulseaudio related crashes, but it does not fix the java compiiler
lockups that I was (and are still) observing. That is some other problem.

Cheers
Michael.
Thread (5 messages) 5 messages, 3 authors, last reply 2012-03-02
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help