mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
add mm argument to pte/pmd/pud/pgd_free
(with Martin Schwidefsky <[email protected]>) The pgd/pud/pmd/pte page table allocation functions get a mm_struct pointer as first argument. The free functions do not get the mm_struct argument. This is 1) asymmetrical and 2) to do mm related page table allocations the mm argument is needed on the free function as well. [[email protected]: i386 fix] [[email protected]: coding-syle fixes] Signed-off-by: Benjamin Herrenschmidt <[email protected]> Signed-off-by: Martin Schwidefsky <[email protected]> Cc: <[email protected]> Signed-off-by: Kamalesh Babulal <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
9f8f217253
commit
5e5419734c
43 changed files with 151 additions and 151 deletions
|
|
@ -6,14 +6,14 @@
|
|||
extern void __bad_pte(pmd_t *pmd);
|
||||
|
||||
extern pgd_t *pgd_alloc(struct mm_struct *mm);
|
||||
extern void pgd_free(pgd_t *pgd);
|
||||
extern void pgd_free(struct mm_struct *mm, pgd_t *pgd);
|
||||
|
||||
/*
|
||||
* We don't have any real pmd's, and this code never triggers because
|
||||
* the pgd will always be present..
|
||||
*/
|
||||
/* #define pmd_alloc_one(mm,address) ({ BUG(); ((pmd_t *)2); }) */
|
||||
#define pmd_free(x) do { } while (0)
|
||||
#define pmd_free(mm, x) do { } while (0)
|
||||
#define __pmd_free_tlb(tlb,x) do { } while (0)
|
||||
/* #define pgd_populate(mm, pmd, pte) BUG() */
|
||||
|
||||
|
|
@ -31,10 +31,10 @@ extern void pgd_free(pgd_t *pgd);
|
|||
|
||||
extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr);
|
||||
extern struct page *pte_alloc_one(struct mm_struct *mm, unsigned long addr);
|
||||
extern void pte_free_kernel(pte_t *pte);
|
||||
extern void pte_free(struct page *pte);
|
||||
extern void pte_free_kernel(struct mm_struct *mm, pte_t *pte);
|
||||
extern void pte_free(struct mm_struct *mm, struct page *pte);
|
||||
|
||||
#define __pte_free_tlb(tlb, pte) pte_free((pte))
|
||||
#define __pte_free_tlb(tlb, pte) pte_free((tlb)->mm, (pte))
|
||||
|
||||
#define check_pgt_cache() do { } while (0)
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ static inline pgd_t *pgd_alloc(struct mm_struct *mm)
|
|||
return kmem_cache_alloc(pgtable_cache[PGD_CACHE_NUM], GFP_KERNEL);
|
||||
}
|
||||
|
||||
static inline void pgd_free(pgd_t *pgd)
|
||||
static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
|
||||
{
|
||||
subpage_prot_free(pgd);
|
||||
kmem_cache_free(pgtable_cache[PGD_CACHE_NUM], pgd);
|
||||
|
|
@ -45,7 +45,7 @@ static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
|
|||
GFP_KERNEL|__GFP_REPEAT);
|
||||
}
|
||||
|
||||
static inline void pud_free(pud_t *pud)
|
||||
static inline void pud_free(struct mm_struct *mm, pud_t *pud)
|
||||
{
|
||||
kmem_cache_free(pgtable_cache[PUD_CACHE_NUM], pud);
|
||||
}
|
||||
|
|
@ -81,7 +81,7 @@ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr)
|
|||
GFP_KERNEL|__GFP_REPEAT);
|
||||
}
|
||||
|
||||
static inline void pmd_free(pmd_t *pmd)
|
||||
static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
|
||||
{
|
||||
kmem_cache_free(pgtable_cache[PMD_CACHE_NUM], pmd);
|
||||
}
|
||||
|
|
@ -99,12 +99,12 @@ static inline struct page *pte_alloc_one(struct mm_struct *mm,
|
|||
return pte ? virt_to_page(pte) : NULL;
|
||||
}
|
||||
|
||||
static inline void pte_free_kernel(pte_t *pte)
|
||||
static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
|
||||
{
|
||||
free_page((unsigned long)pte);
|
||||
}
|
||||
|
||||
static inline void pte_free(struct page *ptepage)
|
||||
static inline void pte_free(struct mm_struct *mm, struct page *ptepage)
|
||||
{
|
||||
__free_page(ptepage);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue