[powerpc v6 1/3] Setup AMOR in HV mode

Balbir Singh bsingharora at gmail.com
Thu Nov 17 11:06:27 AEDT 2016



On 16/11/16 18:58, Aneesh Kumar K.V wrote:
> Balbir Singh <bsingharora at gmail.com> writes:
> 
>> AMOR should be setup in HV mode, we set it up once
>> and let the generic kernel handle IAMR. This patch is
>> used to enable storage keys in a following patch as
>> defined in ISA 3. We don't setup AMOR in DD1, since we
>> can't setup IAMR in DD1 (bits have to be 0). If we setup
>> AMOR some other code could potentially try to set IAMR
>> (guest kernel for example).
>>
>> Reported-by: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
>> Signed-off-by: Balbir Singh <bsingharora at gmail.com>
>> ---
>>  arch/powerpc/mm/pgtable-radix.c | 23 +++++++++++++++++++++++
>>  1 file changed, 23 insertions(+)
>>
>> diff --git a/arch/powerpc/mm/pgtable-radix.c b/arch/powerpc/mm/pgtable-radix.c
>> index ed7bddc..7aa104d 100644
>> --- a/arch/powerpc/mm/pgtable-radix.c
>> +++ b/arch/powerpc/mm/pgtable-radix.c
>> @@ -320,6 +320,27 @@ static void update_hid_for_radix(void)
>>  		cpu_relax();
>>  }
>>  
>> +/*
>> + * In HV mode, we init AMOR so that the hypervisor
>> + * and guest can setup IMAR, enable key 0 and set
>> + * it to 1
>> + * AMOR = 1100....00 (Mask for key 0 is 11)
>> + */
>> +static void radix_init_amor(void)
>> +{
>> +	unsigned long amor_mask = 0xc000000000000000;
>> +	unsigned long amor;
> 
> I guess michael mentioned this in another email, why two variables ?
> 
Left overs from when we did the OR'ing of the mask. But luckily
the compiler does the right thing when generating code

Balbir


More information about the Linuxppc-dev mailing list