Re: [PATCH v2 2.6.38-rc8-tip 6/20] 6: x86: analyze instruction anddetermine fixups.
From: Srikar Dronamraju
Date: Fri Mar 18 2011 - 15:13:59 EST
* Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx> [2011-03-19 00:19:22]:
> * Roland McGrath <roland@xxxxxxxxxxxxx> [2011-03-18 11:36:29]:
> > > handle_riprel_insn() returns 0 if the instruction is not rip-relative
> > > returns 1 if its rip-relative but can use XOL slots.
> > > returns -1 if its rip-relative but cannot use XOL.
> > >
> > > We dont see any instructions that are rip-relative and cannot use XOL.
> > > so the check and return are redundant and I will remove that in the next
> > > patch.
> > How is that? You can only adjust a rip-relative instruction correctly if
> > the instruction copy is within 2GB of the original target address, which
> > cannot be presumed to always be the case in user address space layout
> > (unlike the kernel).
> So we rewrite the copy of instruction (stored in XOL) such that it
> accesses its memory operand indirectly thro a scratch register.
> The contents of the scratch register are stored before singlestep and
> restored later.
> Can you please tell us if this doesnt work?
Infact we have tested using rip-relative addresses and it has
worked very well. So we have verified that it does work. Can you
please tell us why you dont think this works?
Thanks and Regards
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/