[PATCH v2 4/6] ARM: mm: LPAE: Correct virt_to_phys patching for 64 bit physical addresses
Nicolas Pitre
nicolas.pitre at linaro.org
Sat Aug 3 10:01:10 EDT 2013
On Sat, 3 Aug 2013, Sricharan R wrote:
> On Saturday 03 August 2013 08:58 AM, Nicolas Pitre wrote:
> > ... meaning that, instead of using 0x81 for the stub value on the mov
> > instruction, it only has to be 0x83. Bits 7 and 0 still act as anchors
> > for the rotation field in the opcode, while bit 1 indicates which value
> > to patch in.
> I started with this kind of augmenting with the immediate operand
> while starting V2. But the problem was, we do the runtime patching twice.
Ahhh... Bummer.
> Once while booting from low address alias space and
> other while switching to higher memory address. So in this
> case, the augmented bits are lost after doing the patching for
> the first time. So the augmented bits are not valid while trying
> to patch for second time.
>
> This was the reason, i thought of using opcodes which
> is always there.
In which case you only have to look for a mov.
Better yet: just look at the rotate field in the shifter operand. If it
is 0 then it is the __PV_BITS_8_0 case, if it is non zero then it is the
__PV_BITS_31_24 case.
Nicolas
More information about the linux-arm-kernel
mailing list