ia64: Add instruction_pointer_set() API
authorMasami Hiramatsu <mhiramat@kernel.org>
Tue, 14 Sep 2021 14:41:52 +0000 (23:41 +0900)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Fri, 1 Oct 2021 01:24:07 +0000 (21:24 -0400)
Add instruction_pointer_set() API for ia64.

Link: https://lkml.kernel.org/r/163163051195.489837.1039597819838213481.stgit@devnote2
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
arch/ia64/include/asm/ptrace.h

index 08179135905cdb93cedc9a513e623d73049b2af6..8a2d0f72b324bc4d096d7f22ef07b83596dfd0ec 100644 (file)
  * the canonical representation by adding to instruction pointer.
  */
 # define instruction_pointer(regs) ((regs)->cr_iip + ia64_psr(regs)->ri)
+# define instruction_pointer_set(regs, val)    \
+({                                             \
+       ia64_psr(regs)->ri = (val & 0xf);       \
+       regs->cr_iip = (val & ~0xfULL);         \
+})
 
 static inline unsigned long user_stack_pointer(struct pt_regs *regs)
 {