Restore release semantic for the old thread unlock on arm64.
With the introduction of pmap_switch(), the DSB instruction on the address map switch is not necessary executed, which is fixed by changing the unlock store to release. Also remove comment which documented pre-pmap_switch() code. Reviewed by: andrew Sponsored by: The FreeBSD Foundation MFC after: 1 week
This commit is contained in:
parent
6272d7e647
commit
8d59ab652b
@ -165,10 +165,9 @@ ENTRY(cpu_switch)
|
||||
mov x0, x19
|
||||
|
||||
/*
|
||||
* Release the old thread. This doesn't need to be a store-release
|
||||
* as the above dsb instruction will provide release semantics.
|
||||
* Release the old thread.
|
||||
*/
|
||||
str x2, [x0, #TD_LOCK]
|
||||
stlr x2, [x0, #TD_LOCK]
|
||||
#if defined(SCHED_ULE) && defined(SMP)
|
||||
/* Spin if TD_LOCK points to a blocked_lock */
|
||||
ldr x2, =_C_LABEL(blocked_lock)
|
||||
|
Loading…
Reference in New Issue
Block a user