|
@@ -175,7 +175,7 @@ static void pv_wait_node(struct mcs_spinlock *node)
|
|
*
|
|
*
|
|
* Matches the xchg() from pv_kick_node().
|
|
* Matches the xchg() from pv_kick_node().
|
|
*/
|
|
*/
|
|
- (void)xchg(&pn->state, vcpu_halted);
|
|
|
|
|
|
+ set_mb(pn->state, vcpu_halted);
|
|
|
|
|
|
if (!READ_ONCE(node->locked))
|
|
if (!READ_ONCE(node->locked))
|
|
pv_wait(&pn->state, vcpu_halted);
|
|
pv_wait(&pn->state, vcpu_halted);
|