[PATCH 26/28] ARM: mmu: Simplify the use of dma_flush_range()

Lucas Stach l.stach at pengutronix.de
Wed May 9 01:48:37 PDT 2018


Am Dienstag, den 08.05.2018, 14:29 -0700 schrieb Andrey Smirnov:
> Simplify the use of dma_flush_range() by changing its signature to
> accept pointer to start of the data and data size. This change allows
> us to avoid a whole bunch of repetitive arithmetic currently done by
> all of the callers.
> 
> Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>

One nit below, otherwise
Reviewed-by: Lucas Stach <l.stach at pengutronix.de>

> ---
>  arch/arm/cpu/mmu.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/arm/cpu/mmu.c b/arch/arm/cpu/mmu.c
> index b14a869af..fc7102700 100644
> --- a/arch/arm/cpu/mmu.c
> +++ b/arch/arm/cpu/mmu.c
> @@ -142,8 +142,11 @@ static u32 *find_pte(unsigned long adr)
> >  	return &table[(adr >> PAGE_SHIFT) & 0xff];
>  }
>  
> -static void dma_flush_range(unsigned long start, unsigned long end)
> +static void dma_flush_range(void *ptr, size_t size)
>  {
> > +	unsigned long start = (unsigned long)ptr;
> +	unsigned long end   = start + size;

Personal taste, but I don't like those extra spaces. They tend to not
line up as well after a few future code changes.

> +
> >  	__dma_flush_range(start, end);
> >  	if (outer_cache.flush_range)
> >  		outer_cache.flush_range(start, end);
> @@ -170,9 +173,7 @@ static int __remap_range(void *_start, size_t size, u32 pte_flags)
> >  		p[i] |= pte_flags | PTE_TYPE_SMALL;
> >  	}
>  
> > -	dma_flush_range((unsigned long)p,
> > -			(unsigned long)p + numentries * sizeof(u32));
> -
> > +	dma_flush_range(p, numentries * sizeof(u32));
> >  	tlb_invalidate();
>  
> >  	return 0;
> @@ -203,7 +204,7 @@ void *map_io_sections(unsigned long phys, void *_start, size_t size)
> >  	for (sec = start; sec < start + size; sec += PGDIR_SIZE, phys += PGDIR_SIZE)
> >  		ttb[pgd_index(sec)] = phys | PMD_SECT_DEF_UNCACHED;
>  
> > -	dma_flush_range((unsigned long)ttb, (unsigned long)ttb + 0x4000);
> > +	dma_flush_range(ttb, 0x4000);
> >  	tlb_invalidate();
> >  	return _start;
>  }
> @@ -249,9 +250,8 @@ static int arm_mmu_remap_sdram(struct memory_bank *bank)
> >  		pte += PTRS_PER_PTE;
> >  	}
>  
> > -	dma_flush_range((unsigned long)ttb, (unsigned long)ttb + 0x4000);
> > -	dma_flush_range((unsigned long)ptes,
> > -			(unsigned long)ptes + num_ptes * sizeof(u32));
> > +	dma_flush_range(ttb, 0x4000);
> > +	dma_flush_range(ptes, num_ptes * sizeof(u32));
>  
> >  	tlb_invalidate();
>  



More information about the barebox mailing list