[PATCH v3 RESEND 10/17] ARM: LPAE: use phys_addr_t in switch_mm()

Cyril Chemparathy cyril at ti.com
Mon Sep 24 10:32:48 EDT 2012


On 09/24/12 10:05, Catalin Marinas wrote:
> On Fri, Sep 21, 2012 at 04:56:08PM +0100, Cyril Chemparathy wrote:
>> This patch modifies the switch_mm() processor functions to use phys_addr_t.
>> On LPAE systems, we now honor the upper 32-bits of the physical address that
>> is being passed in, and program these into TTBR as expected.
>>
>> Signed-off-by: Cyril Chemparathy <cyril at ti.com>
>> Signed-off-by: Vitaly Andrianov <vitalya at ti.com>
>> ---
[...]
>> diff --git a/arch/arm/mm/proc-v7-3level.S b/arch/arm/mm/proc-v7-3level.S
>> index 8de0f1d..c4f4251 100644
>> --- a/arch/arm/mm/proc-v7-3level.S
>> +++ b/arch/arm/mm/proc-v7-3level.S
[...]
>>   ENTRY(cpu_v7_switch_mm)
>>   #ifdef CONFIG_MMU
>> -	ldr	r1, [r1, #MM_CONTEXT_ID]	@ get mm->context.id
>> -	and	r3, r1, #0xff
>> -	mov	r3, r3, lsl #(48 - 32)		@ ASID
>> -	mcrr	p15, 0, r0, r3, c2		@ set TTB 0
>> +	ldr	r2, [r2, #MM_CONTEXT_ID]	@ get mm->context.id
>> +	and	r2, r2, #0xff
>> +	mov	r2, r2, lsl #(48 - 32)		@ ASID
>> +	orr	rpgdh, rpgdh, r2		@ upper 32-bits of pgd phys
>
> Can you do:
>
> 	orr	rpgdh, rpgdh, r2, lsl #(48 - 32)
>

Sure.  Thanks.

-- Cyril.



More information about the linux-arm-kernel mailing list