diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-06-13 16:29:25 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-06-13 16:29:25 +0000 |
commit | db7d4daea91e105e3859cf461d7e53b9b77454b2 (patch) | |
tree | 9bb65b95440af09e8aca63abe56970dd3360cc57 /include/asm-m68k/pgtable.h | |
parent | 9c1c01ead627bdda9211c9abd5b758d6c687d8ac (diff) |
Merge with Linux 2.2.8.
Diffstat (limited to 'include/asm-m68k/pgtable.h')
-rw-r--r-- | include/asm-m68k/pgtable.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/include/asm-m68k/pgtable.h b/include/asm-m68k/pgtable.h index a3487fb9d..1e6f317ee 100644 --- a/include/asm-m68k/pgtable.h +++ b/include/asm-m68k/pgtable.h @@ -507,6 +507,7 @@ extern inline void SET_PAGE_DIR(struct task_struct * tsk, pgd_t * pgdir) if (tsk == current) { if (CPU_IS_040_OR_060) __asm__ __volatile__ (".chip 68040\n\t" + "pflushan\n\t" "movec %0,%%urp\n\t" ".chip 68k" : : "r" (tsk->tss.crp[1])); @@ -514,10 +515,22 @@ extern inline void SET_PAGE_DIR(struct task_struct * tsk, pgd_t * pgdir) unsigned long tmp; __asm__ __volatile__ ("movec %%cacr,%0\n\t" "orw #0x0808,%0\n\t" - "movec %0,%%cacr\n\t" - "pmove %1,%%crp\n\t" - : "=d" (tmp) - : "m" (tsk->tss.crp[0])); + "movec %0,%%cacr" + : "=d" (tmp)); + /* For a 030-only kernel, avoid flushing the whole + ATC, we only need to flush the user entries. + The 68851 does this by itself. Avoid a runtime + check here. */ + __asm__ __volatile__ ( +#ifdef CPU_M68030_ONLY + ".chip 68030\n\t" + "pmovefd %0,%%crp\n\t" + ".chip 68k\n\t" + "pflush #0,#4" +#else + "pmove %0,%%crp" +#endif + : : "m" (tsk->tss.crp[0])); } } } @@ -813,5 +826,6 @@ extern inline void update_mmu_cache(struct vm_area_struct * vma, /* Needs to be defined here and not in linux/mm.h, as it is arch dependent */ #define PageSkip(page) (0) +#define kern_addr_valid(addr) (1) #endif /* _M68K_PGTABLE_H */ |