diff options
author | Peter Zijlstra <peterz@infradead.org> | 2021-10-07 00:40:17 +0200 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2021-10-07 00:40:17 +0200 |
commit | b08cadbd3b8721db738d9a00ef3ce3ed667e6d9c (patch) | |
tree | 1b44ef760764ea19f82fd80088135d23ab565d2d /arch/m68k/mm/cache.c | |
parent | db2b0c5d7b6f19b3c2cab08c531b65342eb5252b (diff) | |
parent | fe255fe6ad97685e5a4be0d871f43288dbc10ad6 (diff) |
Merge branch 'objtool/urgent'
Fixup conflicts.
# Conflicts:
# tools/objtool/check.c
Diffstat (limited to 'arch/m68k/mm/cache.c')
-rw-r--r-- | arch/m68k/mm/cache.c | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/arch/m68k/mm/cache.c b/arch/m68k/mm/cache.c index b486c0889eec..dde978e66f14 100644 --- a/arch/m68k/mm/cache.c +++ b/arch/m68k/mm/cache.c @@ -49,24 +49,7 @@ static unsigned long virt_to_phys_slow(unsigned long vaddr) if (mmusr & MMU_R_040) return (mmusr & PAGE_MASK) | (vaddr & ~PAGE_MASK); } else { - unsigned short mmusr; - unsigned long *descaddr; - - asm volatile ("ptestr %3,%2@,#7,%0\n\t" - "pmove %%psr,%1" - : "=a&" (descaddr), "=m" (mmusr) - : "a" (vaddr), "d" (get_fs().seg)); - if (mmusr & (MMU_I|MMU_B|MMU_L)) - return 0; - descaddr = phys_to_virt((unsigned long)descaddr); - switch (mmusr & MMU_NUM) { - case 1: - return (*descaddr & 0xfe000000) | (vaddr & 0x01ffffff); - case 2: - return (*descaddr & 0xfffc0000) | (vaddr & 0x0003ffff); - case 3: - return (*descaddr & PAGE_MASK) | (vaddr & ~PAGE_MASK); - } + WARN_ON_ONCE(!CPU_IS_040_OR_060); } return 0; } @@ -107,11 +90,9 @@ void flush_icache_user_range(unsigned long address, unsigned long endaddr) void flush_icache_range(unsigned long address, unsigned long endaddr) { - mm_segment_t old_fs = get_fs(); - - set_fs(KERNEL_DS); + set_fc(SUPER_DATA); flush_icache_user_range(address, endaddr); - set_fs(old_fs); + set_fc(USER_DATA); } EXPORT_SYMBOL(flush_icache_range); |