diff options
| -rw-r--r-- | arch/x86/Kconfig | 3 | ||||
| -rw-r--r-- | arch/x86/mm/pgtable_32.c | 18 | ||||
| -rw-r--r-- | include/asm-x86/pgtable_32.h | 5 | 
3 files changed, 11 insertions, 15 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index f41c9538ca3..237fc128143 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -66,9 +66,6 @@ config MMU  config ZONE_DMA  	def_bool y -config QUICKLIST -	def_bool X86_32 -  config SBUS  	bool diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c index 73aba712520..2f9e9afcb9f 100644 --- a/arch/x86/mm/pgtable_32.c +++ b/arch/x86/mm/pgtable_32.c @@ -342,12 +342,16 @@ static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp)  pgd_t *pgd_alloc(struct mm_struct *mm)  { -	pgd_t *pgd = quicklist_alloc(0, GFP_KERNEL, pgd_ctor); +	pgd_t *pgd = (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_ZERO); -	mm->pgd = pgd;		/* so that alloc_pd can use it */ +	/* so that alloc_pd can use it */ +	mm->pgd = pgd; +	if (pgd) +		pgd_ctor(pgd);  	if (pgd && !pgd_prepopulate_pmd(mm, pgd)) { -		quicklist_free(0, pgd_dtor, pgd); +		pgd_dtor(pgd); +		free_page((unsigned long)pgd);  		pgd = NULL;  	} @@ -357,12 +361,8 @@ pgd_t *pgd_alloc(struct mm_struct *mm)  void pgd_free(struct mm_struct *mm, pgd_t *pgd)  {  	pgd_mop_up_pmds(mm, pgd); -	quicklist_free(0, pgd_dtor, pgd); -} - -void check_pgt_cache(void) -{ -	quicklist_trim(0, pgd_dtor, 25, 16); +	pgd_dtor(pgd); +	free_page((unsigned long)pgd);  }  void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte) diff --git a/include/asm-x86/pgtable_32.h b/include/asm-x86/pgtable_32.h index a842c7222b1..4e6a0fca0b4 100644 --- a/include/asm-x86/pgtable_32.h +++ b/include/asm-x86/pgtable_32.h @@ -26,10 +26,9 @@ struct mm_struct;  struct vm_area_struct;  extern pgd_t swapper_pg_dir[1024]; -extern struct kmem_cache *pmd_cache; -void check_pgt_cache(void); -static inline void pgtable_cache_init(void) {} +static inline void pgtable_cache_init(void) { } +static inline void check_pgt_cache(void) { }  void paging_init(void);  | 
