|
@@ -150,6 +150,15 @@ unsigned long arch_uretprobe_hijack_return_addr(unsigned long trampoline,
|
|
|
return orig;
|
|
|
}
|
|
|
|
|
|
+bool arch_uretprobe_is_alive(struct return_instance *ret, enum rp_check ctx,
|
|
|
+ struct pt_regs *regs)
|
|
|
+{
|
|
|
+ if (ctx == RP_CHECK_CHAIN_CALL)
|
|
|
+ return user_stack_pointer(regs) <= ret->stack;
|
|
|
+ else
|
|
|
+ return user_stack_pointer(regs) < ret->stack;
|
|
|
+}
|
|
|
+
|
|
|
/* Instruction Emulation */
|
|
|
|
|
|
static void adjust_psw_addr(psw_t *psw, unsigned long len)
|