On Thu, 2010-03-25 at 21:02 +0000, Nicolas Pitre wrote: > --- a/arch/arm/include/asm/highmem.h > +++ b/arch/arm/include/asm/highmem.h > @@ -11,7 +11,11 @@ > > #define kmap_prot PAGE_KERNEL > > -#define flush_cache_kmaps() flush_cache_all() > +#define flush_cache_kmaps() \ > + do { \ > + if (cache_is_vivt()) \ > + flush_cache_all(); \ > + } while (0) Do the aliasing VIPT caches need flushing as well? > --- a/arch/arm/mm/highmem.c > +++ b/arch/arm/mm/highmem.c > @@ -79,7 +79,8 @@ void kunmap_atomic(void *kvaddr, enum km_type type) > unsigned int idx = type + KM_TYPE_NR * smp_processor_id(); > > if (kvaddr >= (void *)FIXADDR_START) { > - __cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE); > + if (cache_is_vivt()) > + __cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE); Same here (and probably some other places in this patch, not sure). -- Catalin -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html