From 4f667f07a2c1b574cce8c4ab37608bbefcfbc191 Mon Sep 17 00:00:00 2001 From: Vyacheslav Cherkashin Date: Thu, 5 Sep 2013 15:58:08 +0400 Subject: [PATCH] [REFACTOR] remove field priv_arg from struct uretprobe Change-Id: I06686934e673cad7f0b8778758f81a23e91b3cd6 Signed-off-by: Vyacheslav Cherkashin --- uprobe/swap_uprobes.c | 2 +- uprobe/swap_uprobes.h | 3 +-- us_manager/sspt/sspt.h | 1 - us_manager/us_def_handler.c | 4 ++-- us_manager/us_def_handler.h | 2 +- 5 files changed, 5 insertions(+), 7 deletions(-) diff --git a/uprobe/swap_uprobes.c b/uprobe/swap_uprobes.c index 4364f94..7fbbcb9 100644 --- a/uprobe/swap_uprobes.c +++ b/uprobe/swap_uprobes.c @@ -706,7 +706,7 @@ int trampoline_uprobe_handler(struct kprobe *p, struct pt_regs *regs) } if (ri->rp && ri->rp->handler) { - ri->rp->handler(ri, regs, ri->rp->priv_arg); + ri->rp->handler(ri, regs); } orig_ret_addr = (unsigned long)ri->ret_addr; diff --git a/uprobe/swap_uprobes.h b/uprobe/swap_uprobes.h index 0add55d..3cd3b73 100644 --- a/uprobe/swap_uprobes.h +++ b/uprobe/swap_uprobes.h @@ -49,7 +49,7 @@ struct ujprobe { struct uretprobe_instance; -typedef int (*uretprobe_handler_t)(struct uretprobe_instance *, struct pt_regs *, void *); +typedef int (*uretprobe_handler_t)(struct uretprobe_instance *, struct pt_regs *); /* * Function-return probe - @@ -64,7 +64,6 @@ typedef int (*uretprobe_handler_t)(struct uretprobe_instance *, struct pt_regs * struct uretprobe { struct uprobe up; uretprobe_handler_t handler; - void *priv_arg; int maxactive; int nmissed; struct hlist_head free_instances; diff --git a/us_manager/sspt/sspt.h b/us_manager/sspt/sspt.h index a373842..d430fd6 100644 --- a/us_manager/sspt/sspt.h +++ b/us_manager/sspt/sspt.h @@ -99,7 +99,6 @@ static inline int sspt_register_usprobe(struct us_ip *ip) ip->jprobe.up.sm = ip->page->file->proc->sm; /* for retuprobe */ - ip->retprobe.priv_arg = ip; ip->retprobe.up.task = ip->page->file->proc->task; ip->retprobe.up.sm = ip->page->file->proc->sm; diff --git a/us_manager/us_def_handler.c b/us_manager/us_def_handler.c index 0d4e404..3f7e068 100644 --- a/us_manager/us_def_handler.c +++ b/us_manager/us_def_handler.c @@ -99,10 +99,10 @@ static void send_plt(struct us_ip *ip) } int uretprobe_event_handler(struct uretprobe_instance *probe, - struct pt_regs *regs, - struct us_ip *ip) + struct pt_regs *regs) { int retval = regs_return_value(regs); + struct us_ip *ip = container_of(probe->rp, struct us_ip, retprobe); unsigned long addr = (unsigned long)ip->jprobe.up.kp.addr; if (ip->got_addr && ip->flag_got == 0) { diff --git a/us_manager/us_def_handler.h b/us_manager/us_def_handler.h index 2bfb678..e9b18a7 100644 --- a/us_manager/us_def_handler.h +++ b/us_manager/us_def_handler.h @@ -40,6 +40,6 @@ void ujprobe_event_handler(unsigned long arg0, unsigned long arg1, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5); int uretprobe_event_handler(struct uretprobe_instance *p, - struct pt_regs *regs, struct us_ip *ip); + struct pt_regs *regs); #endif /* _US_DEF_HANDLER_H */ -- 2.7.4