[PATCH v3 26/40] Subject: ARM: mm: proc-feroceon: Use the new processor struct macros

Dave Martin dave.martin at linaro.org
Thu Jul 7 06:14:06 EDT 2011


On Thu, Jul 07, 2011 at 10:14:36AM +0100, Russell King - ARM Linux wrote:
> On Thu, Jun 23, 2011 at 06:50:34PM +0100, Dave Martin wrote:
> > -ENTRY(feroceon_cache_fns)
> > -	.long	feroceon_flush_icache_all
> > -	.long	feroceon_flush_kern_cache_all
> > -	.long	feroceon_flush_user_cache_all
> > -	.long	feroceon_flush_user_cache_range
> > -	.long	feroceon_coherent_kern_range
> > -	.long	feroceon_coherent_user_range
> > -	.long	feroceon_flush_kern_dcache_area
> > -	.long	feroceon_dma_map_area
> > -	.long	feroceon_dma_unmap_area
> > -	.long	feroceon_dma_flush_range
> > -
> > -ENTRY(feroceon_range_cache_fns)
> > -	.long	feroceon_flush_icache_all
> > -	.long	feroceon_flush_kern_cache_all
> > -	.long	feroceon_flush_user_cache_all
> > -	.long	feroceon_flush_user_cache_range
> > -	.long	feroceon_coherent_kern_range
> > -	.long	feroceon_coherent_user_range
> > -	.long	feroceon_range_flush_kern_dcache_area
> > -	.long	feroceon_range_dma_map_area
> > -	.long	feroceon_dma_unmap_area
> > -	.long	feroceon_range_dma_flush_range
> > +	@ define struct cpu_cache_fns (see <asm/cacheflush.h> and proc-macros.S)
> > +	define_cache_functions feroceon, default=feroceon
> > +	define_cache_functions feroceon_range, default=feroceon, \
> > +		flush_kern_dcache_area=feroceon_range_flush_kern_dcache_area, \
> > +		dma_map_area=feroceon_range_dma_map_area, \
> > +		dma_flush_range=feroceon_range_dma_flush_range
> 
> That's unique enough that it can be left as-is I think, rather than
> having to add that special knowledge into the macro.
> 
> A solution to this would be to alias (using .equ) the feroceon_xxx
> functions to feroceon_range_xxx, and then use the standard
> define_cache_functions macro, which would be more in keeping with
> the way these things are supposed to work.

Agreed.  That sounds sensible.

I'll await your views on

[PATCH v3 01/40] Subject: ARM: mm: proc-macros Add generic
	proc/cache/tlb struct definition macros

before addressing this, since the issues involved overlap.

Cheers
---Dave



More information about the linux-arm-kernel mailing list