x86: unify pgtable accessors which use, #2
based on: Subject: x86: unify pgtable accessors which use supported_pte_mask From: Jeremy Fitzhardinge <jeremy@goop.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
6fdc05d479
commit
3847231167
|
@ -155,6 +155,21 @@ static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot)
|
|||
pgprot_val(pgprot)) & __supported_pte_mask);
|
||||
}
|
||||
|
||||
static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
||||
{
|
||||
pteval_t val = pte_val(pte);
|
||||
|
||||
/*
|
||||
* Chop off the NX bit (if present), and add the NX portion of
|
||||
* the newprot (if present):
|
||||
*/
|
||||
val &= _PAGE_CHG_MASK & ~_PAGE_NX;
|
||||
val |= pgprot_val(newprot) & __supported_pte_mask;
|
||||
|
||||
return __pte(val);
|
||||
}
|
||||
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
|
|
|
@ -235,22 +235,6 @@ static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count)
|
|||
|
||||
#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
|
||||
|
||||
static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
||||
{
|
||||
pte.pte_low &= _PAGE_CHG_MASK;
|
||||
pte.pte_low |= pgprot_val(newprot);
|
||||
#ifdef CONFIG_X86_PAE
|
||||
/*
|
||||
* Chop off the NX bit (if present), and add the NX portion of
|
||||
* the newprot (if present):
|
||||
*/
|
||||
pte.pte_high &= ~(1 << (_PAGE_BIT_NX - 32));
|
||||
pte.pte_high |= (pgprot_val(newprot) >> 32) & \
|
||||
(__supported_pte_mask >> 32);
|
||||
#endif
|
||||
return pte;
|
||||
}
|
||||
|
||||
/*
|
||||
* the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD]
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue