On Fri, Apr 13, 2012 at 8:32 PM, Luck, Tony <tony.luck@xxxxxxxxx> wrote: > Michel Lespinasse cleaned up the futex calling conventions in > commit 37a9d912b24f96a0591773e6e6c3642991ae5a70 > futex: 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. -- To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html