(2014/08/27 22:02), Wang Nan wrote: > Copy old kprobe to newly alloced optimized_kprobe before > arch_prepare_optimized_kprobe(). Original kprove can brings more > information to optimizer. > > Signed-off-by: Wang Nan <wangn...@huawei.com> > Cc: Russell King <li...@arm.linux.org.uk> > Cc: "David A. Long" <dave.l...@linaro.org> > Cc: Jon Medhurst <t...@linaro.org> > Cc: Taras Kondratiuk <taras.kondrat...@linaro.org> > Cc: Ben Dooks <ben.do...@codethink.co.uk> > Cc: Ananth N Mavinakayanahalli <ana...@in.ibm.com> > Cc: Anil S Keshavamurthy <anil.s.keshavamur...@intel.com> > Cc: "David S. Miller" <da...@davemloft.net> > Cc: Masami Hiramatsu <masami.hiramatsu...@hitachi.com> > Cc: Will Deacon <will.dea...@arm.com> > --- > kernel/kprobes.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/kernel/kprobes.c b/kernel/kprobes.c > index 3995f54..33cf568 100644 > --- a/kernel/kprobes.c > +++ b/kernel/kprobes.c > @@ -730,7 +730,12 @@ static struct kprobe *alloc_aggr_kprobe(struct kprobe *p) > return NULL; > > INIT_LIST_HEAD(&op->list); > - op->kp.addr = p->addr;
Do not remove this, since copy_kprobe() doesn't copy kp.addr. static inline void copy_kprobe(struct kprobe *ap, struct kprobe *p) { memcpy(&p->opcode, &ap->opcode, sizeof(kprobe_opcode_t)); memcpy(&p->ainsn, &ap->ainsn, sizeof(struct arch_specific_insn)); } Thank you, > + > + /* > + * copy gives arch_prepare_optimized_kprobe > + * more information > + */ > + copy_kprobe(p, &op->kp); > arch_prepare_optimized_kprobe(op); > > return &op->kp; > -- Masami HIRAMATSU Software Platform Research Dept. Linux Technology Research Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: masami.hiramatsu...@hitachi.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/