pgtable-3level.h (9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e) pgtable-3level.h (ea4654e0885348f0faa47f6d7b44a08d75ad16e9)
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_X86_PGTABLE_3LEVEL_H
3#define _ASM_X86_PGTABLE_3LEVEL_H
4
5/*
6 * Intel Physical Address Extension (PAE) Mode - three-level page
7 * tables on PPro+ CPUs.
8 *

--- 38 unchanged lines hidden (view full) ---

47
48static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
49{
50 pxx_xchg64(pmd, pmdp, native_pmd_val(pmd));
51}
52
53static inline void native_set_pud(pud_t *pudp, pud_t pud)
54{
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_X86_PGTABLE_3LEVEL_H
3#define _ASM_X86_PGTABLE_3LEVEL_H
4
5/*
6 * Intel Physical Address Extension (PAE) Mode - three-level page
7 * tables on PPro+ CPUs.
8 *

--- 38 unchanged lines hidden (view full) ---

47
48static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
49{
50 pxx_xchg64(pmd, pmdp, native_pmd_val(pmd));
51}
52
53static inline void native_set_pud(pud_t *pudp, pud_t pud)
54{
55#ifdef CONFIG_PAGE_TABLE_ISOLATION
55#ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
56 pud.p4d.pgd = pti_set_user_pgtbl(&pudp->p4d.pgd, pud.p4d.pgd);
57#endif
58 pxx_xchg64(pud, pudp, native_pud_val(pud));
59}
60
61/*
62 * For PTEs and PDEs, we must clear the P-bit first when clearing a page table
63 * entry, so clear the bottom half first and enforce ordering with a compiler

--- 146 unchanged lines hidden ---
56 pud.p4d.pgd = pti_set_user_pgtbl(&pudp->p4d.pgd, pud.p4d.pgd);
57#endif
58 pxx_xchg64(pud, pudp, native_pud_val(pud));
59}
60
61/*
62 * For PTEs and PDEs, we must clear the P-bit first when clearing a page table
63 * entry, so clear the bottom half first and enforce ordering with a compiler

--- 146 unchanged lines hidden ---