Index: sys/i386/include/pmap_pae.h =================================================================== --- sys/i386/include/pmap_pae.h +++ sys/i386/include/pmap_pae.h @@ -100,7 +100,16 @@ #define pde_cmpset(pdep, old, new) atomic_cmpset_64_i586(pdep, old, new) #define pte_load_store(ptep, pte) atomic_swap_64_i586(ptep, pte) #define pte_load_clear(ptep) atomic_swap_64_i586(ptep, 0) -#define pte_store(ptep, pte) atomic_store_rel_64_i586(ptep, pte) +static inline void +pte_store(pt_entry_t *ptep, pt_entry_t pte) +{ + uint32_t *p; + + p = (void *)ptep; + *(p + 1) = (uint32_t)(pte >> 32); + __compiler_membar(); + *p = (uint32_t)pte; +} #define pte_load(ptep) atomic_load_acq_64_i586(ptep) extern pdpt_entry_t *IdlePDPT;