diff options
author | Christoph Lameter <clameter@sgi.com> | 2005-06-09 15:29:00 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2005-06-09 16:04:30 -0400 |
commit | a2a64769d0d3cc0380b4b6ecdcb781a2f790a69e (patch) | |
tree | 387ee93cf8ee39ca64dd53380d1ea25a4f6134e7 /fs/super.c | |
parent | 1834cd9fd27763f4e55184e4138a19ba36620174 (diff) |
[IA64] Fix race condition in the rt_sigprocmask fastcall
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: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'fs/super.c')
0 files changed, 0 insertions, 0 deletions