arm64: kprobes: Cleanup jprobe_return
authorMarc Zyngier <marc.zyngier@arm.com>
Thu, 21 Jul 2016 08:44:17 +0000 (09:44 +0100)
committerAlex Shi <alex.shi@linaro.org>
Thu, 20 Oct 2016 07:38:13 +0000 (15:38 +0800)
commita5d55dd10f2a061849e7a665aa4b16bf258d9d0a
tree1793b968dfc363f5a370ac75b9a16f823063bf97
parent71b5200f5f0c1e9966dd7d238526e85f4fbf8089
arm64: kprobes: Cleanup jprobe_return

commit 3b7d14e9f3f1efd4c4348800e977fd1ce4ca660e upstream.

jprobe_return seems to have aged badly. Comments referring to
non-existent behaviours, and a dangerous habit of messing
with registers without telling the compiler.

This patches applies the following remedies:
- Fix the comments to describe the actual behaviour
- Tidy up the asm sequence to directly assign the
  stack pointer without clobbering extra registers
- Mark the rest of the function as unreachable() so
  that the compiler knows that there is no need for
  an epilogue
- Stop making jprobe_return_break a global function
  (you really don't want to call that guy, and it isn't
  even a function).

Tested with tcp_probe.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: David A. Long <dave.long@linaro.org>
arch/arm64/kernel/probes/kprobes.c