qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 07/19] hw/arm/smmu: Introduce CACHED_ENTRY_TO_ADDR


From: Eric Auger
Subject: Re: [PATCH v4 07/19] hw/arm/smmu: Introduce CACHED_ENTRY_TO_ADDR
Date: Mon, 8 Jul 2024 15:27:40 +0200
User-agent: Mozilla Thunderbird

Hi Mostafa,

On 7/4/24 20:04, Jean-Philippe Brucker wrote:
> On Mon, Jul 01, 2024 at 11:02:29AM +0000, Mostafa Saleh wrote:
>> Soon, smmuv3_do_translate() will be used to translate the CD and the
>> TTBx, instead of re-writting the same logic to convert the returned
>> cached entry to an address, add a new macro CACHED_ENTRY_TO_ADDR.
>>
>> Signed-off-by: Mostafa Saleh <smostafa@google.com>
>> ---
>>  hw/arm/smmuv3.c              | 3 +--
>>  include/hw/arm/smmu-common.h | 3 +++
>>  2 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c
>> index cc61708160..229b3c388c 100644
>> --- a/hw/arm/smmuv3.c
>> +++ b/hw/arm/smmuv3.c
>> @@ -950,8 +950,7 @@ epilogue:
>>      switch (status) {
>>      case SMMU_TRANS_SUCCESS:
>>          entry.perm = cached_entry->entry.perm;
>> -        entry.translated_addr = cached_entry->entry.translated_addr +
>> -                                    (addr & cached_entry->entry.addr_mask);
>> +        entry.translated_addr = CACHED_ENTRY_TO_ADDR(cached_entry, addr);
>>          entry.addr_mask = cached_entry->entry.addr_mask;
>>          trace_smmuv3_translate_success(mr->parent_obj.name, sid, addr,
>>                                         entry.translated_addr, entry.perm,
>> diff --git a/include/hw/arm/smmu-common.h b/include/hw/arm/smmu-common.h
>> index 96eb017e50..09d3b9e734 100644
>> --- a/include/hw/arm/smmu-common.h
>> +++ b/include/hw/arm/smmu-common.h
>> @@ -37,6 +37,9 @@
>>  #define VMSA_IDXMSK(isz, strd, lvl)         ((1ULL << \
>>                                               VMSA_BIT_LVL(isz, strd, lvl)) 
>> - 1)
>>  
>> +#define CACHED_ENTRY_TO_ADDR(ent, addr)      (ent)->entry.translated_addr + 
>> \
>> +                                             ((addr) & 
>> (ent)->entry.addr_mask);
> nit: maybe wrap this in parenthesis to avoid future usage mistakes and
> drop the semicolon 
With Jean's comments taken into account,
Reviewed-by: Eric Auger <eric.auger@redhat.com>

Eric
>
> Thanks,
> Jean
>
>> +
>>  /*
>>   * Page table walk error types
>>   */
>> -- 
>> 2.45.2.803.g4e1b14247a-goog
>>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]