[PATCH v3 RESEND 05/17] ARM: LPAE: support 64-bit virt_to_phys patching

Russell King - ARM Linux linux at arm.linux.org.uk
Mon Sep 24 18:40:21 EDT 2012


On Mon, Sep 24, 2012 at 06:32:22PM -0400, Nicolas Pitre wrote:
> We don't want to limit lowmem.  The lowmem is very precious memory and 
> we want to maximize its size.  In that case it is probably best to 
> implement a real patchable 64-bit addition rather than artificially 
> restricting the lowmem size.

You don't need to.  You can solve the V->P translation like this:

        movw    %hi, #0xVWXY            @ fixup
        adds    %lo, %lo, #offset       @ fixup
        adc     %hi, %hi, #0

which is probably the simplest way to do the fixup - keep the existing
fixup code, and add support for that movw instruction.  And that will
work across any 4GB boundary just fine (we won't have more than 4GB of
virtual address space on a 32-bit CPU anyway, so we only have to worry
about one carry.)

And the P->V translation is truncating anyway, so that is just:

	sub	%lo, %lo, #offset

and nothing more.



More information about the linux-arm-kernel mailing list