On Thu, Sep 13, 2012 at 02:03:34PM +0100, Russell King - ARM Linux wrote: > On Thu, Sep 13, 2012 at 12:39:49PM +0100, Dave Martin wrote: > > We could introduce something like CONFIG_ARM_HAVE_CACHEFLUSH_LOUIS, and > > do: > > > > <asm/glue-cache.h> > > #ifndef MULTI_CACHE > > #ifdef CONFIG_HAVE_ARM_CACHEFLUSH_LOUIS > > #define __cpuc_flush_kern_cache_louis __glue(_CACHE,_flush_kern_cache_louis) > > #else > > #define __cpuc_flush_kern_cache_louis __glue(_CACHE,_flush_kern_all) > > #endif > > #endif > > > > <asm/cacheflush.h> > > #ifdef MULTI_CACHE > > #define flush_cache_louis() cpu_cache.flush_kern_cache_louis() > > #else > > #define flush_cache_louis() __cpuc_flush_kern_cache_louis() > > #endif > > No, this is stupidly complicated and is fragile. Just alias the > functions, like we do in cache-v4wt.S: > > .globl v4wt_dma_flush_range > .equ v4wt_dma_flush_range, v4wt_dma_inv_range > > except, you'll need: > > .globl v4wt_flush_kern_cache_louis > .equ v4wt_flush_kern_cache_louis, v4wt_flush_kern_cache_all > > You can do it automatically, using the attached sedscript and this bit > of shell: > > $ for f in $(grep -l define_cache_functions arch/arm/mm/*.S ); do > sed -if sedscript $f > git add $f > done > $ git commit -s > > Do that first, and then go over those which you need to add a real > flush_kern_cache_louis function to. Sure, that works better. I was trying to think of a more localised way to do it, but the result was admittedly rather ugly (and not that localised once we select HAVE_ARM_CACHEFLUSH_LOUIS all over the place). Cheers ---Dave > 1,/__INITDATA\|define struct cpu_cache_fns/ { > /ENTRY.*flush_kern_cache_all/ { > h > s/.*(\([^_]*\)_.*/\t.globl\t\1_flush_kern_cache_louis\n\t.equ\t\1_flush_kern_cache_louis, \1_flush_kern_cache_all\n/ > x > } > /__INITDATA\|define struct cpu_cache_fns/ { > H > g > } > } -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html