Merge tag 'nds32-for-linux-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 25 Feb 2021 17:50:36 +0000 (09:50 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 25 Feb 2021 17:50:36 +0000 (09:50 -0800)
Pull nds32 updates from Greentime Hu:
 "Code clean-up and refinement"

* tag 'nds32-for-linux-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux:
  nds32: Fix bogus reference to <asm/procinfo.h>
  nds32: use get_kernel_nofault in dump_mem
  nds32: remove dump_instr
  nds32: configs: Cleanup CONFIG_CROSS_COMPILE
  nds32: Replace <linux/clk-provider.h> by <linux/of_clk.h>

arch/nds32/configs/defconfig
arch/nds32/kernel/setup.c
arch/nds32/kernel/time.c
arch/nds32/kernel/traps.c

index 40313a63507570b6088ebce45719b04134186fd7..f9a89cf00aa696134ef64322fef1505bcf5f8302 100644 (file)
@@ -1,4 +1,3 @@
-CONFIG_CROSS_COMPILE="nds32le-linux-"
 CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
 CONFIG_HIGH_RES_TIMERS=y
index c356e484dcab3300504078cd17b3759f1db36c6b..af82e996f412ecf898de9097c7a084079a5108ff 100644 (file)
@@ -52,7 +52,7 @@ EXPORT_SYMBOL(elf_hwcap);
 
 /*
  * The following string table, must sync with HWCAP_xx bitmask,
- * which is defined in <asm/procinfo.h>
+ * which is defined above
  */
 static const char *hwcap_str[] = {
        "mfusr_pc",
index ac9d78ce3a818926dd61bd23cddfa10e495b7a1e..574a3d0a853980a9458ed236ad4fcb9bd242890d 100644 (file)
@@ -2,7 +2,7 @@
 // Copyright (C) 2005-2017 Andes Technology Corporation
 
 #include <linux/clocksource.h>
-#include <linux/clk-provider.h>
+#include <linux/of_clk.h>
 
 void __init time_init(void)
 {
index 6a9772ba73927696c05d5a866ef08696bd7c2bba..ee0d9ae192a5041a8a6494b93f9373f5876737fe 100644 (file)
@@ -25,17 +25,8 @@ extern void show_pte(struct mm_struct *mm, unsigned long addr);
 void dump_mem(const char *lvl, unsigned long bottom, unsigned long top)
 {
        unsigned long first;
-       mm_segment_t fs;
        int i;
 
-       /*
-        * We need to switch to kernel mode so that we can use __get_user
-        * to safely read from kernel space.  Note that we now dump the
-        * code first, just in case the backtrace kills us.
-        */
-       fs = get_fs();
-       set_fs(KERNEL_DS);
-
        pr_emerg("%s(0x%08lx to 0x%08lx)\n", lvl, bottom, top);
 
        for (first = bottom & ~31; first < top; first += 32) {
@@ -48,7 +39,9 @@ void dump_mem(const char *lvl, unsigned long bottom, unsigned long top)
                for (p = first, i = 0; i < 8 && p < top; i++, p += 4) {
                        if (p >= bottom && p < top) {
                                unsigned long val;
-                               if (__get_user(val, (unsigned long *)p) == 0)
+
+                               if (get_kernel_nofault(val,
+                                               (unsigned long *)p) == 0)
                                        sprintf(str + i * 9, " %08lx", val);
                                else
                                        sprintf(str + i * 9, " ????????");
@@ -56,46 +49,10 @@ void dump_mem(const char *lvl, unsigned long bottom, unsigned long top)
                }
                pr_emerg("%s%04lx:%s\n", lvl, first & 0xffff, str);
        }
-
-       set_fs(fs);
 }
 
 EXPORT_SYMBOL(dump_mem);
 
-static void dump_instr(struct pt_regs *regs)
-{
-       unsigned long addr = instruction_pointer(regs);
-       mm_segment_t fs;
-       char str[sizeof("00000000 ") * 5 + 2 + 1], *p = str;
-       int i;
-
-       return;
-       /*
-        * We need to switch to kernel mode so that we can use __get_user
-        * to safely read from kernel space.  Note that we now dump the
-        * code first, just in case the backtrace kills us.
-        */
-       fs = get_fs();
-       set_fs(KERNEL_DS);
-
-       pr_emerg("Code: ");
-       for (i = -4; i < 1; i++) {
-               unsigned int val, bad;
-
-               bad = __get_user(val, &((u32 *) addr)[i]);
-
-               if (!bad) {
-                       p += sprintf(p, i == 0 ? "(%08x) " : "%08x ", val);
-               } else {
-                       p += sprintf(p, "bad PC value");
-                       break;
-               }
-       }
-       pr_emerg("Code: %s\n", str);
-
-       set_fs(fs);
-}
-
 #define LOOP_TIMES (100)
 static void __dump(struct task_struct *tsk, unsigned long *base_reg,
                   const char *loglvl)
@@ -179,7 +136,6 @@ void die(const char *str, struct pt_regs *regs, int err)
 
        if (!user_mode(regs) || in_interrupt()) {
                dump_mem("Stack: ", regs->sp, (regs->sp + PAGE_SIZE) & PAGE_MASK);
-               dump_instr(regs);
                dump_stack();
        }