Commit 7c9f80cb authored by Juergen Gross's avatar Juergen Gross Committed by Ingo Molnar

x86/paravirt: Avoid needless paravirt step clearing page table entries

pte_clear() et al are based on two paravirt steps today: one step to
create a page table entry with all zeroes, and one step to write this
entry value.

Drop the first step as it is completely useless.
Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20200815100641.26362-7-jgross@suse.com
parent e1ac3e66
...@@ -448,7 +448,7 @@ static inline pudval_t pud_val(pud_t pud) ...@@ -448,7 +448,7 @@ static inline pudval_t pud_val(pud_t pud)
static inline void pud_clear(pud_t *pudp) static inline void pud_clear(pud_t *pudp)
{ {
set_pud(pudp, __pud(0)); set_pud(pudp, native_make_pud(0));
} }
static inline void set_p4d(p4d_t *p4dp, p4d_t p4d) static inline void set_p4d(p4d_t *p4dp, p4d_t p4d)
...@@ -486,14 +486,14 @@ static inline void __set_pgd(pgd_t *pgdp, pgd_t pgd) ...@@ -486,14 +486,14 @@ static inline void __set_pgd(pgd_t *pgdp, pgd_t pgd)
#define pgd_clear(pgdp) do { \ #define pgd_clear(pgdp) do { \
if (pgtable_l5_enabled()) \ if (pgtable_l5_enabled()) \
set_pgd(pgdp, __pgd(0)); \ set_pgd(pgdp, native_make_pgd(0)); \
} while (0) } while (0)
#endif /* CONFIG_PGTABLE_LEVELS == 5 */ #endif /* CONFIG_PGTABLE_LEVELS == 5 */
static inline void p4d_clear(p4d_t *p4dp) static inline void p4d_clear(p4d_t *p4dp)
{ {
set_p4d(p4dp, __p4d(0)); set_p4d(p4dp, native_make_p4d(0));
} }
static inline void set_pte_atomic(pte_t *ptep, pte_t pte) static inline void set_pte_atomic(pte_t *ptep, pte_t pte)
...@@ -504,12 +504,12 @@ static inline void set_pte_atomic(pte_t *ptep, pte_t pte) ...@@ -504,12 +504,12 @@ static inline void set_pte_atomic(pte_t *ptep, pte_t pte)
static inline void pte_clear(struct mm_struct *mm, unsigned long addr, static inline void pte_clear(struct mm_struct *mm, unsigned long addr,
pte_t *ptep) pte_t *ptep)
{ {
set_pte(ptep, __pte(0)); set_pte(ptep, native_make_pte(0));
} }
static inline void pmd_clear(pmd_t *pmdp) static inline void pmd_clear(pmd_t *pmdp)
{ {
set_pmd(pmdp, __pmd(0)); set_pmd(pmdp, native_make_pmd(0));
} }
#define __HAVE_ARCH_START_CONTEXT_SWITCH #define __HAVE_ARCH_START_CONTEXT_SWITCH
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment