|
@@ -336,12 +336,12 @@ static gfn_t pse36_gfn_delta(u32 gpte)
|
|
|
#ifdef CONFIG_X86_64
|
|
|
static void __set_spte(u64 *sptep, u64 spte)
|
|
|
{
|
|
|
- *sptep = spte;
|
|
|
+ WRITE_ONCE(*sptep, spte);
|
|
|
}
|
|
|
|
|
|
static void __update_clear_spte_fast(u64 *sptep, u64 spte)
|
|
|
{
|
|
|
- *sptep = spte;
|
|
|
+ WRITE_ONCE(*sptep, spte);
|
|
|
}
|
|
|
|
|
|
static u64 __update_clear_spte_slow(u64 *sptep, u64 spte)
|
|
@@ -390,7 +390,7 @@ static void __set_spte(u64 *sptep, u64 spte)
|
|
|
*/
|
|
|
smp_wmb();
|
|
|
|
|
|
- ssptep->spte_low = sspte.spte_low;
|
|
|
+ WRITE_ONCE(ssptep->spte_low, sspte.spte_low);
|
|
|
}
|
|
|
|
|
|
static void __update_clear_spte_fast(u64 *sptep, u64 spte)
|
|
@@ -400,7 +400,7 @@ static void __update_clear_spte_fast(u64 *sptep, u64 spte)
|
|
|
ssptep = (union split_spte *)sptep;
|
|
|
sspte = (union split_spte)spte;
|
|
|
|
|
|
- ssptep->spte_low = sspte.spte_low;
|
|
|
+ WRITE_ONCE(ssptep->spte_low, sspte.spte_low);
|
|
|
|
|
|
/*
|
|
|
* If we map the spte from present to nonpresent, we should clear
|