powerpc/book3s: Remove pgd/pud/pmd_set() interfaces
When updating page tables, we need to make sure we fill the page table entry valid bits. We do this by or'ing in one of PGD/PUD/PMD_VAL_BITS. The page table 'set' interfaces allow updating the raw value of page table entries without setting the valid bits, so remove those interfaces to avoid incorrect usage in future. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> [mpe: Reword commit message based on mailing list discussion] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
fe1ef6bcdb
commit
c746ca00f5
|
@ -111,7 +111,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
|
|||
|
||||
static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
|
||||
{
|
||||
pgd_set(pgd, __pgtable_ptr_val(pud) | PGD_VAL_BITS);
|
||||
*pgd = __pgd(__pgtable_ptr_val(pud) | PGD_VAL_BITS);
|
||||
}
|
||||
|
||||
static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
|
||||
|
@ -138,7 +138,7 @@ static inline void pud_free(struct mm_struct *mm, pud_t *pud)
|
|||
|
||||
static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
|
||||
{
|
||||
pud_set(pud, __pgtable_ptr_val(pmd) | PUD_VAL_BITS);
|
||||
*pud = __pud(__pgtable_ptr_val(pmd) | PUD_VAL_BITS);
|
||||
}
|
||||
|
||||
static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud,
|
||||
|
@ -176,13 +176,13 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
|
|||
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
|
||||
pte_t *pte)
|
||||
{
|
||||
pmd_set(pmd, __pgtable_ptr_val(pte) | PMD_VAL_BITS);
|
||||
*pmd = __pmd(__pgtable_ptr_val(pte) | PMD_VAL_BITS);
|
||||
}
|
||||
|
||||
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
|
||||
pgtable_t pte_page)
|
||||
{
|
||||
pmd_set(pmd, __pgtable_ptr_val(pte_page) | PMD_VAL_BITS);
|
||||
*pmd = __pmd(__pgtable_ptr_val(pte_page) | PMD_VAL_BITS);
|
||||
}
|
||||
|
||||
static inline pgtable_t pmd_pgtable(pmd_t pmd)
|
||||
|
|
|
@ -851,11 +851,6 @@ static inline bool pte_ci(pte_t pte)
|
|||
return false;
|
||||
}
|
||||
|
||||
static inline void pmd_set(pmd_t *pmdp, unsigned long val)
|
||||
{
|
||||
*pmdp = __pmd(val);
|
||||
}
|
||||
|
||||
static inline void pmd_clear(pmd_t *pmdp)
|
||||
{
|
||||
*pmdp = __pmd(0);
|
||||
|
@ -887,11 +882,6 @@ static inline int pmd_bad(pmd_t pmd)
|
|||
return hash__pmd_bad(pmd);
|
||||
}
|
||||
|
||||
static inline void pud_set(pud_t *pudp, unsigned long val)
|
||||
{
|
||||
*pudp = __pud(val);
|
||||
}
|
||||
|
||||
static inline void pud_clear(pud_t *pudp)
|
||||
{
|
||||
*pudp = __pud(0);
|
||||
|
@ -934,10 +924,6 @@ static inline bool pud_access_permitted(pud_t pud, bool write)
|
|||
}
|
||||
|
||||
#define pgd_write(pgd) pte_write(pgd_pte(pgd))
|
||||
static inline void pgd_set(pgd_t *pgdp, unsigned long val)
|
||||
{
|
||||
*pgdp = __pgd(val);
|
||||
}
|
||||
|
||||
static inline void pgd_clear(pgd_t *pgdp)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue