Merge tag 'csky-for-linus-4.21' of git://github.com/c-sky/csky-linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 5 Jan 2019 17:50:07 +0000 (09:50 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 5 Jan 2019 17:50:07 +0000 (09:50 -0800)
Pull arch/csky updates from Guo Ren:
 "Here are three main features (cpu_hotplug, basic ftrace, basic perf)
  and some bugfixes:

  Features:
   - Add CPU-hotplug support for SMP
   - Add ftrace with function trace and function graph trace
   - Add Perf support
   - Add EM_CSKY_OLD 39
   - optimize kernel panic print.
   - remove syscall_exit_work

  Bugfixes:
   - fix abiv2 mmap(... O_SYNC) failure
   - fix gdb coredump error
   - remove vdsp implement for kernel
   - fix qemu failure to bootup sometimes
   - fix ftrace call-graph panic
   - fix device tree node reference leak
   - remove meaningless header-y
   - fix save hi,lo,dspcr regs in switch_stack
   - remove unused members in processor.h"

* tag 'csky-for-linus-4.21' of git://github.com/c-sky/csky-linux:
  csky: Add perf support for C-SKY
  csky: Add EM_CSKY_OLD 39
  clocksource/drivers/c-sky: fixup ftrace call-graph panic
  csky: ftrace call graph supported.
  csky: basic ftrace supported
  csky: remove unused members in processor.h
  csky: optimize kernel panic print.
  csky: stacktrace supported.
  csky: CPU-hotplug supported for SMP
  clocksource/drivers/c-sky: fixup qemu fail to bootup sometimes.
  csky: fixup save hi,lo,dspcr regs in switch_stack.
  csky: remove syscall_exit_work
  csky: fixup remove vdsp implement for kernel.
  csky: bugfix gdb coredump error.
  csky: fixup abiv2 mmap(... O_SYNC) failed.
  csky: define syscall_get_arch()
  elf-em.h: add EM_CSKY
  csky: remove meaningless header-y
  csky: Don't leak device tree node reference

1  2 
arch/csky/Kconfig
arch/csky/kernel/signal.c
include/uapi/linux/audit.h
include/uapi/linux/elf-em.h

diff --combined arch/csky/Kconfig
index 37bed8aadf95b395f72b9e5c6550593e68e1c170,7689b54d4236a8570e312b963f7c164e223ee260..398113c845f56c0d14a3d367af4d515b1586f7ad
@@@ -7,7 -7,8 +7,7 @@@ config CSK
        select COMMON_CLK
        select CLKSRC_MMIO
        select CLKSRC_OF
 -      select DMA_DIRECT_OPS
 -      select DMA_NONCOHERENT_OPS
 +      select DMA_DIRECT_REMAP
        select IRQ_DOMAIN
        select HANDLE_DOMAIN_IRQ
        select DW_APB_TIMER_OF
        select GENERIC_SCHED_CLOCK
        select GENERIC_SMP_IDLE_THREAD
        select HAVE_ARCH_TRACEHOOK
+       select HAVE_FUNCTION_TRACER
+       select HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_GENERIC_DMA_COHERENT
        select HAVE_KERNEL_GZIP
        select HAVE_KERNEL_LZO
        select HAVE_KERNEL_LZMA
+       select HAVE_PERF_EVENTS
        select HAVE_C_RECORDMCOUNT
        select HAVE_DMA_API_DEBUG
        select HAVE_DMA_CONTIGUOUS
@@@ -40,7 -44,7 +43,7 @@@
        select OF
        select OF_EARLY_FLATTREE
        select OF_RESERVED_MEM
-       select PERF_USE_VMALLOC
+       select PERF_USE_VMALLOC if CPU_CK610
        select RTC_LIB
        select TIMER_OF
        select USB_ARCH_HAS_EHCI
@@@ -93,6 -97,9 +96,9 @@@ config MM
  config RWSEM_GENERIC_SPINLOCK
        def_bool y
  
+ config STACKTRACE_SUPPORT
+       def_bool y
  config TIME_LOW_RES
        def_bool y
  
@@@ -144,6 -151,19 +150,19 @@@ config CPU_CK86
        select CPU_HAS_FPUV2
  endchoice
  
+ choice
+       prompt "C-SKY PMU type"
+       depends on PERF_EVENTS
+       depends on CPU_CK807 || CPU_CK810 || CPU_CK860
+ config CPU_PMU_NONE
+       bool "None"
+ config CSKY_PMU_V1
+       bool "Performance Monitoring Unit Ver.1"
+ endchoice
  choice
        prompt "Power Manager Instruction (wait/doze/stop)"
        default CPU_PM_NONE
@@@ -197,6 -217,15 +216,15 @@@ config RAM_BAS
        hex "DRAM start addr (the same with memory-section in dts)"
        default 0x0
  
+ config HOTPLUG_CPU
+       bool "Support for hot-pluggable CPUs"
+       select GENERIC_IRQ_MIGRATION
+       depends on SMP
+       help
+         Say Y here to allow turning CPUs off and on. CPUs can be
+         controlled through /sys/devices/system/cpu/cpu1/hotplug/target.
+         Say N if you want to disable CPU hotplug.
  endmenu
  
  source "kernel/Kconfig.hz"
index 9967c10eee2bff00f7bab79ef4ab3fd1b6023430,e680dc127f40615c6ef4a4800f6e7f2e233eb81f..207a891479d26e63100ea88c7665a673a6574f62
@@@ -88,7 -88,7 +88,7 @@@ do_rt_sigreturn(void
        struct pt_regs *regs = current_pt_regs();
        struct rt_sigframe *frame = (struct rt_sigframe *)(regs->usp);
  
 -      if (verify_area(VERIFY_READ, frame, sizeof(*frame)))
 +      if (!access_ok(frame, sizeof(*frame)))
                goto badframe;
        if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set)))
                goto badframe;
@@@ -238,8 -238,6 +238,6 @@@ static void do_signal(struct pt_regs *r
        if (!user_mode(regs))
                return;
  
-       current->thread.esp0 = (unsigned long)regs;
        /*
         * If we were from a system call, check for system call restarting...
         */
index 9e67fd359d589934b331679ae08bf6aa8157bb11,f91729232f46526a41f25e80cc35c4012680a412..36a7e3f18e6999b56d02585d6f774463ee0d41d6
@@@ -378,6 -378,7 +378,7 @@@ enum 
  #define AUDIT_ARCH_ARM                (EM_ARM|__AUDIT_ARCH_LE)
  #define AUDIT_ARCH_ARMEB      (EM_ARM)
  #define AUDIT_ARCH_CRIS               (EM_CRIS|__AUDIT_ARCH_LE)
+ #define AUDIT_ARCH_CSKY               (EM_CSKY|__AUDIT_ARCH_LE)
  #define AUDIT_ARCH_FRV                (EM_FRV)
  #define AUDIT_ARCH_I386               (EM_386|__AUDIT_ARCH_LE)
  #define AUDIT_ARCH_IA64               (EM_IA_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
  #define AUDIT_ARCH_TILEGX32   (EM_TILEGX|__AUDIT_ARCH_LE)
  #define AUDIT_ARCH_TILEPRO    (EM_TILEPRO|__AUDIT_ARCH_LE)
  #define AUDIT_ARCH_X86_64     (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
 +#define AUDIT_ARCH_XTENSA     (EM_XTENSA)
  
  #define AUDIT_PERM_EXEC               1
  #define AUDIT_PERM_WRITE      2
index d2fb964432f335f95c27b9574ea3c22980c2200b,d9544b8a70967d2b6243b0d253f10dbdd8fe6b3e..0c3000faedbae3f831c5e62c4cd0676e1a71ead5
@@@ -34,7 -34,6 +34,7 @@@
  #define EM_M32R               88      /* Renesas M32R */
  #define EM_MN10300    89      /* Panasonic/MEI MN10300, AM33 */
  #define EM_OPENRISC     92     /* OpenRISC 32-bit embedded processor */
 +#define EM_XTENSA     94      /* Tensilica Xtensa Architecture */
  #define EM_BLACKFIN     106     /* ADI Blackfin Processor */
  #define EM_ALTERA_NIOS2       113     /* Altera Nios II soft-core processor */
  #define EM_TI_C6000   140     /* TI C6X DSPs */
@@@ -44,6 -43,7 +44,7 @@@
  #define EM_TILEGX     191     /* Tilera TILE-Gx */
  #define EM_RISCV      243     /* RISC-V */
  #define EM_BPF                247     /* Linux BPF - in-kernel virtual machine */
+ #define EM_CSKY               252     /* C-SKY */
  #define EM_FRV                0x5441  /* Fujitsu FR-V */
  
  /*