diff options
Diffstat (limited to 'kernel/locking')
-rw-r--r-- | kernel/locking/qspinlock_paravirt.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/locking/qspinlock_paravirt.h b/kernel/locking/qspinlock_paravirt.h index b5758a95a8d3..27ab96dca68c 100644 --- a/kernel/locking/qspinlock_paravirt.h +++ b/kernel/locking/qspinlock_paravirt.h | |||
@@ -175,7 +175,7 @@ static void pv_wait_node(struct mcs_spinlock *node) | |||
175 | * | 175 | * |
176 | * Matches the xchg() from pv_kick_node(). | 176 | * Matches the xchg() from pv_kick_node(). |
177 | */ | 177 | */ |
178 | (void)xchg(&pn->state, vcpu_halted); | 178 | set_mb(pn->state, vcpu_halted); |
179 | 179 | ||
180 | if (!READ_ONCE(node->locked)) | 180 | if (!READ_ONCE(node->locked)) |
181 | pv_wait(&pn->state, vcpu_halted); | 181 | pv_wait(&pn->state, vcpu_halted); |