[PATCH v2 1/4] ARM: new cache maintenance api for iommu mem flush

Gupta, Ramesh grgupta at ti.com
Wed Jun 20 05:00:32 EDT 2012


Hi Russell,


On Wed, Jun 20, 2012 at 2:13 PM, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> On Tue, Jun 19, 2012 at 04:51:07PM +0530, Gupta, Ramesh wrote:
>> >From 785a1f2854002ce7c1c8880bc5d8d92a7868bf1c Mon Sep 17 00:00:00 2001
>> From: Ramesh Gupta G <grgupta at ti.com>
>> Date: Fri, 15 Jun 2012 16:37:20 +0530
>> Subject: [PATCH v2 1/4] ARM: new cache maintenance api for iommu mem flush
>>
>> non-coherent IOMMUs need to make sure that the
>> data held in the caches need to be visible for the
>> MMU hardware. A new L1 cache maintenance api has been
>> created to handle this. Thanks to RMK's suggestions on
>> creating a dedicated API for this purpose.
>>
>> ref:
>> http://marc.info/?l=linux-kernel&m=131316512713815&w=2
>>
>> Signed-off-by: Ramesh Gupta G <grgupta at ti.com>
>> ---
>>  arch/arm/include/asm/cacheflush.h |   17 +++++++++++++++++
>>  arch/arm/include/asm/glue-cache.h |    1 +
>>  arch/arm/mm/proc-macros.S         |    1 +
>>  3 files changed, 19 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/include/asm/cacheflush.h
>> b/arch/arm/include/asm/cacheflush.h
>> index d5d8d5c..2b4f5aa 100644
>> --- a/arch/arm/include/asm/cacheflush.h
>> +++ b/arch/arm/include/asm/cacheflush.h
>> @@ -84,6 +84,11 @@
>>   *           - kaddr  - page address
>>   *           - size   - region size
>>   *
>> + *     flush_mem(start, end)
>> + *
>> + *             Clean and invalidate the specified virtual address range.
>> + *             - start  - virtual start address
>> + *             - end    - virtual end address
>
> You're missing a blank line here.

I will fix it.

> Also, "flush_mem" is a very lame name - it tells us nothing about what the
> purpose of this new API is.  Should it be used for when the CPU MMU TLB
> entries are changed?  What about if we're suspending, should it be used
> then?  What about if we're performing DMA - should it be used for that
> memory too?
>
> Please, give it a better name which describes what it is for.

I agree, will choose a better name to describe the api.

>> diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S
>> index 2d8ff3a..f48a5ab 100644
>> --- a/arch/arm/mm/proc-macros.S
>> +++ b/arch/arm/mm/proc-macros.S
>> @@ -307,6 +307,7 @@ ENTRY(\name\()_cache_fns)
>>       .long   \name\()_dma_map_area
>>       .long   \name\()_dma_unmap_area
>>       .long   \name\()_dma_flush_range
>> +     .long   \name\()_flush_mem
>>       .size   \name\()_cache_fns, . - \name\()_cache_fns
>>  .endm
>
> This will immediately break the kernel compilation.  Therefore, your
> patch is incomplete and unsuitable for applying.

I was checking only with panda configuration, I will update the patch
set to take care of this.

Thank you for review comments.

-- 
regards
Ramesh Gupta G



More information about the linux-arm-kernel mailing list