diff options
| author | Masami Hiramatsu (Google) <[email protected]> | 2023-06-06 21:39:55 +0900 |
|---|---|---|
| committer | Masami Hiramatsu (Google) <[email protected]> | 2023-06-06 21:39:55 +0900 |
| commit | cb16330d12741f6dae56aad5acf62f5be3a06c4e (patch) | |
| tree | 989f603fa2a1d02a0e12fc411435337102f45e8b /include/linux | |
| parent | 9561de3a55bed6bdd44a12820ba81ec416e705a7 (diff) | |
fprobe: Pass return address to the handlers
Pass return address as 'ret_ip' to the fprobe entry and return handlers
so that the fprobe user handler can get the reutrn address without
analyzing arch-dependent pt_regs.
Link: https://lore.kernel.org/all/168507467664.913472.11642316698862778600.stgit@mhiramat.roam.corp.google.com/
Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/fprobe.h | 6 | ||||
| -rw-r--r-- | include/linux/rethook.h | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/include/linux/fprobe.h b/include/linux/fprobe.h index 47fefc7f363b..134f0f59ffa8 100644 --- a/include/linux/fprobe.h +++ b/include/linux/fprobe.h @@ -35,9 +35,11 @@ struct fprobe { int nr_maxactive; int (*entry_handler)(struct fprobe *fp, unsigned long entry_ip, - struct pt_regs *regs, void *entry_data); + unsigned long ret_ip, struct pt_regs *regs, + void *entry_data); void (*exit_handler)(struct fprobe *fp, unsigned long entry_ip, - struct pt_regs *regs, void *entry_data); + unsigned long ret_ip, struct pt_regs *regs, + void *entry_data); }; /* This fprobe is soft-disabled. */ diff --git a/include/linux/rethook.h b/include/linux/rethook.h index c8ac1e5afcd1..fdf26cd0e742 100644 --- a/include/linux/rethook.h +++ b/include/linux/rethook.h @@ -14,7 +14,7 @@ struct rethook_node; -typedef void (*rethook_handler_t) (struct rethook_node *, void *, struct pt_regs *); +typedef void (*rethook_handler_t) (struct rethook_node *, void *, unsigned long, struct pt_regs *); /** * struct rethook - The rethook management data structure. |