* 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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>