From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-1?Q?=C9meric_Maschino?= Date: Sun, 15 Apr 2012 21:19:11 +0000 Subject: Re: [PATCH] [IA64] Fix futex_atomic_cmpxchg_inatomic() Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: linux-ia64@vger.kernel.org Hi, Just rebuilt kernel with the patch proposed by Tony: issue fixed :-) Many thanks, Emeric Le 14 avril 2012 00:31, Michel Lespinasse a =E9crit : > On Fri, Apr 13, 2012 at 8:32 PM, Luck, Tony wrote: >> Michel Lespinasse cleaned up the futex calling conventions in >> commit 37a9d912b24f96a0591773e6e6c3642991ae5a70 >> =A0 =A0futex: Sanitize cmpxchg_futex_value_locked API >> >> But the ia64 implementation was subtly broken. Gcc does not know >> that register "r8" will be updated by the fault handler if the >> cmpxchg instruction takes an exception. So it feels safe in letting >> the initialization of r8 slide to after the cmpxchg. Result: we >> always return 0 whether the user address faulted or not. >> >> Fix by moving the initialization of r8 into the __asm__ code so >> gcc won't move it. > > Looks good. Sorry for the trouble. > > -- > Michel "Walken" Lespinasse > A program is never fully debugged until the last user dies.