--- zzzz-none-000/linux-2.4.17/include/asm-mips/pgalloc.h 2001-07-02 20:56:40.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/include/asm-mips/pgalloc.h 2004-11-24 13:21:34.000000000 +0000 @@ -18,14 +18,32 @@ * - flush_tlb_mm(mm) flushes the specified mm context TLB entries * - flush_tlb_page(mm, vmaddr) flushes a single page * - flush_tlb_range(mm, start, end) flushes a range of pages + * - flush_tlb_pgtables(mm, start, end) flushes a range of page tables */ -extern void flush_tlb_all(void); -extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_range(struct mm_struct *mm, unsigned long start, +extern void local_flush_tlb_all(void); +extern void local_flush_tlb_mm(struct mm_struct *mm); +extern void local_flush_tlb_range(struct mm_struct *mm, unsigned long start, unsigned long end); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); +extern void local_flush_tlb_page(struct vm_area_struct *vma, + unsigned long page); + +#ifdef CONFIG_SMP + +extern void flush_tlb_all(void); +extern void flush_tlb_mm(struct mm_struct *); +extern void flush_tlb_range(struct mm_struct *, unsigned long, unsigned long); +extern void flush_tlb_page(struct vm_area_struct *, unsigned long); + +#else /* CONFIG_SMP */ + +#define flush_tlb_all() local_flush_tlb_all() +#define flush_tlb_mm(mm) local_flush_tlb_mm(mm) +#define flush_tlb_range(mm,vmaddr,end) local_flush_tlb_range(mm, vmaddr, end) +#define flush_tlb_page(vma,page) local_flush_tlb_page(vma, page) + +#endif /* CONFIG_SMP */ -extern inline void flush_tlb_pgtables(struct mm_struct *mm, +static inline void flush_tlb_pgtables(struct mm_struct *mm, unsigned long start, unsigned long end) { /* Nothing to do on MIPS. */ @@ -162,7 +180,7 @@ free_page((unsigned long)pte); } -#define pte_free(pte) pte_free_slow(pte) +#define pte_free(pte) pte_free_fast(pte) #define pgd_free(pgd) free_pgd_fast(pgd) #define pgd_alloc(mm) get_pgd_fast()