• C
    [IA64] Fix race condition in the rt_sigprocmask fastcall · a2a64769
    Christoph Lameter 提交于
    current->blocked will be set to the value of current->thread_info->flags if the
    cmpxchg to update thread_info->flags fails. For performance reasons the store into
    current->blocked was placed in the cmpxchg loop. However, the cmpxchg overwrites the
    register holding the value to be stored. In the rare case of a retry the value of
    thread_info->flags will be written into current->blocked.
    
    The fix is to use another register so that the register containing the current->blocked
    value is not overwritten.
    Signed-off-by: NChristoph Lameter <clameter@sgi.com>
    Signed-off-by: NTony Luck <tony.luck@intel.com>
    a2a64769
fsys.S 25.9 KB