diff --git a/arch/x86/mm/pageattr_64.c b/arch/x86/mm/pageattr_64.c index 5a03fb5fd530b1f5abffc8c5a6a406f40778d2b1..34acbcd62eb8c84be2b79297482078b7801a3dc3 100644 --- a/arch/x86/mm/pageattr_64.c +++ b/arch/x86/mm/pageattr_64.c @@ -86,7 +86,7 @@ __change_page_attr(unsigned long address, struct page *page, pgprot_t prot) prot = canon_pgprot(prot); if (level == 4) { - set_pte(kpte, mk_pte(page, prot)); + set_pte_atomic(kpte, mk_pte(page, prot)); } else { /* * split_large_page will take the reference for this @@ -99,7 +99,7 @@ __change_page_attr(unsigned long address, struct page *page, pgprot_t prot) if (!split) return -ENOMEM; pgprot_val(ref_prot2) &= ~_PAGE_NX; - set_pte(kpte, mk_pte(split, ref_prot2)); + set_pte_atomic(kpte, mk_pte(split, ref_prot2)); goto repeat; }