From: Catalin Marinas <catalin.marinas@arm.com>
Date: Thu, 21 Jul 2016 17:20:41 +0000 (+0100)
Subject: Merge branch 'for-next/kprobes' into for-next/core
X-Git-Tag: v4.8-rc1~142^2~4
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a95b0644b38c16c40b753224671b919b9af0b73c;p=linux.git

Merge branch 'for-next/kprobes' into for-next/core

* kprobes:
  arm64: kprobes: Add KASAN instrumentation around stack accesses
  arm64: kprobes: Cleanup jprobe_return
  arm64: kprobes: Fix overflow when saving stack
  arm64: kprobes: WARN if attempting to step with PSTATE.D=1
  kprobes: Add arm64 case in kprobe example module
  arm64: Add kernel return probes support (kretprobes)
  arm64: Add trampoline code for kretprobes
  arm64: kprobes instruction simulation support
  arm64: Treat all entry code as non-kprobe-able
  arm64: Blacklist non-kprobe-able symbol
  arm64: Kprobes with single stepping support
  arm64: add conditional instruction simulation support
  arm64: Add more test functions to insn.c
  arm64: Add HAVE_REGS_AND_STACK_ACCESS_API feature
---

a95b0644b38c16c40b753224671b919b9af0b73c
diff --cc arch/arm64/kernel/Makefile
index 9ef8ec681e30,367673e38700..0b9e49a92c47
--- a/arch/arm64/kernel/Makefile
+++ b/arch/arm64/kernel/Makefile
@@@ -46,10 -45,8 +45,10 @@@ arm64-obj-$(CONFIG_ARM64_ACPI_PARKING_P
  arm64-obj-$(CONFIG_PARAVIRT)		+= paravirt.o
  arm64-obj-$(CONFIG_RANDOMIZE_BASE)	+= kaslr.o
  arm64-obj-$(CONFIG_HIBERNATION)		+= hibernate.o hibernate-asm.o
 +arm64-obj-$(CONFIG_KEXEC)		+= machine_kexec.o relocate_kernel.o	\
 +					   cpu-reset.o
  
- obj-y					+= $(arm64-obj-y) vdso/
+ obj-y					+= $(arm64-obj-y) vdso/ probes/
  obj-m					+= $(arm64-obj-m)
  head-y					:= head.o
  extra-y					+= $(head-y) vmlinux.lds
diff --cc arch/arm64/kernel/debug-monitors.c
index f17134d39e6b,2fbc1b99e8fb..91fff48d0f57
--- a/arch/arm64/kernel/debug-monitors.c
+++ b/arch/arm64/kernel/debug-monitors.c
@@@ -165,13 -171,24 +170,15 @@@ postcore_initcall(debug_monitors_init)
   */
  static void set_regs_spsr_ss(struct pt_regs *regs)
  {
 -	unsigned long spsr;
 -
 -	spsr = regs->pstate;
 -	spsr &= ~DBG_SPSR_SS;
 -	spsr |= DBG_SPSR_SS;
 -	regs->pstate = spsr;
 +	regs->pstate |= DBG_SPSR_SS;
  }
+ NOKPROBE_SYMBOL(set_regs_spsr_ss);
  
  static void clear_regs_spsr_ss(struct pt_regs *regs)
  {
 -	unsigned long spsr;
 -
 -	spsr = regs->pstate;
 -	spsr &= ~DBG_SPSR_SS;
 -	regs->pstate = spsr;
 +	regs->pstate &= ~DBG_SPSR_SS;
  }
+ NOKPROBE_SYMBOL(clear_regs_spsr_ss);
  
  /* EL1 Single Step Handler hooks */
  static LIST_HEAD(step_hook);