Revert "MIPS: kernel: {ftrace,kgdb}: Set correct address limit for cache flushes"
authorThomas Bogendoerfer <tsbogend@alpha.franken.de>
Wed, 10 Feb 2021 16:16:13 +0000 (17:16 +0100)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Sat, 13 Feb 2021 08:53:08 +0000 (09:53 +0100)
This reverts commit 6ebda44f366478d1eea180d93154e7d97b591f50.

All icache flushes in this code paths are done via flush_icache_range(),
which only uses normal cache instruction. And this is the correct thing
for EVA mode, too. So no need to do set_fs(KERNEL_DS) here.

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
arch/mips/kernel/ftrace.c
arch/mips/kernel/kgdb.c

index f57e68f..666b996 100644 (file)
@@ -73,7 +73,6 @@ static inline void ftrace_dyn_arch_init_insns(void)
 static int ftrace_modify_code(unsigned long ip, unsigned int new_code)
 {
        int faulted;
-       mm_segment_t old_fs;
 
        /* *(unsigned int *)ip = new_code; */
        safe_store_code(new_code, ip, faulted);
@@ -81,10 +80,7 @@ static int ftrace_modify_code(unsigned long ip, unsigned int new_code)
        if (unlikely(faulted))
                return -EFAULT;
 
-       old_fs = get_fs();
-       set_fs(KERNEL_DS);
        flush_icache_range(ip, ip + 8);
-       set_fs(old_fs);
 
        return 0;
 }
index ea781b2..de779e2 100644 (file)
@@ -32,7 +32,6 @@
 #include <asm/cacheflush.h>
 #include <asm/processor.h>
 #include <asm/sigcontext.h>
-#include <linux/uaccess.h>
 #include <asm/irq_regs.h>
 
 static struct hard_trap_info {
@@ -210,14 +209,7 @@ void arch_kgdb_breakpoint(void)
 
 void kgdb_call_nmi_hook(void *ignored)
 {
-       mm_segment_t old_fs;
-
-       old_fs = get_fs();
-       set_fs(KERNEL_DS);
-
        kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs());
-
-       set_fs(old_fs);
 }
 
 static int compute_signal(int tt)
@@ -302,7 +294,6 @@ static int kgdb_mips_notify(struct notifier_block *self, unsigned long cmd,
        struct die_args *args = (struct die_args *)ptr;
        struct pt_regs *regs = args->regs;
        int trap = (regs->cp0_cause & 0x7c) >> 2;
-       mm_segment_t old_fs;
 
 #ifdef CONFIG_KPROBES
        /*
@@ -317,17 +308,11 @@ static int kgdb_mips_notify(struct notifier_block *self, unsigned long cmd,
        if (user_mode(regs))
                return NOTIFY_DONE;
 
-       /* Kernel mode. Set correct address limit */
-       old_fs = get_fs();
-       set_fs(KERNEL_DS);
-
        if (atomic_read(&kgdb_active) != -1)
                kgdb_nmicallback(smp_processor_id(), regs);
 
-       if (kgdb_handle_exception(trap, compute_signal(trap), cmd, regs)) {
-               set_fs(old_fs);
+       if (kgdb_handle_exception(trap, compute_signal(trap), cmd, regs))
                return NOTIFY_DONE;
-       }
 
        if (atomic_read(&kgdb_setting_breakpoint))
                if ((trap == 9) && (regs->cp0_epc == (unsigned long)breakinst))
@@ -337,7 +322,6 @@ static int kgdb_mips_notify(struct notifier_block *self, unsigned long cmd,
        local_irq_enable();
        __flush_cache_all();
 
-       set_fs(old_fs);
        return NOTIFY_STOP;
 }