Skip to content
Commit f154bb84 authored by Max Filippov's avatar Max Filippov Committed by Paul Gortmaker
Browse files

xtensa: add missing exclusive access state management

commit a0fc1436 upstream.

The result of the s32ex opcode is recorded in the ATOMCTL special
register and must be retrieved with the getex opcode. Context switch
between s32ex and getex may trash the ATOMCTL register and result in
duplicate update or missing update of the atomic variable.
Add atomctl8 field to the struct thread_info and use getex to swap
ATOMCTL bit 8 as a part of context switch.
Clear exclusive access monitor on kernel entry.

Cc: stable@vger.kernel.org
Fixes: f7c34874

 ("xtensa: add exclusive atomics support")
Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
parent d7a0ae03
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment