Re: [PATCH v7 3.2-rc2 8/30] x86: analyze instruction and determinefixups.

From: Srikar Dronamraju
Date: Thu Dec 01 2011 - 00:54:21 EST


* Oleg Nesterov <oleg@xxxxxxxxxx> [2011-11-30 19:57:51]:

> On 11/18, Srikar Dronamraju wrote:
> >
> > +static void handle_riprel_insn(struct mm_struct *mm, struct uprobe *uprobe,
> > + struct insn *insn)
> > +{
> > [...snip...]
> > + if (insn->immediate.nbytes) {
> > + cursor++;
> > + memmove(cursor, cursor + insn->displacement.nbytes,
> > + insn->immediate.nbytes);
> > + }
> > + return;
> > +}
>
> Of course I don not understand this code. But it seems that it can
> rewrite uprobe->insn ?
>

Yes, we do rewrite the instruction for the RIP relative instructions.
But the first byte is still intact.

> If yes, don't we need to save the original insn for unregister_uprobe?

When we unregister, we just put back the least opcode size which
happens to be the first byte for x86.

--
Thanks and Regards
Srikar

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/