ARM926EJS: Make asm routines volatile in cache ops
authorMarek Vasut <marex@denx.de>
Fri, 6 Apr 2012 03:25:06 +0000 (03:25 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Mon, 16 Apr 2012 20:11:57 +0000 (22:11 +0200)
We certainly don't want the compiler to reorganise the code for dcache flushing.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Stefano Babic <sbabic@denx.de>
arch/arm/cpu/arm926ejs/cache.c

index 4430578a81c1f7f1dd49f7f41413b50ad499dffd..07f036f18b4628095414cbcf499fca6398547811 100644 (file)
@@ -82,7 +82,7 @@ void flush_dcache_range(unsigned long start, unsigned long stop)
                start += CONFIG_SYS_CACHELINE_SIZE;
        }
 
-       asm("mcr p15, 0, %0, c7, c10, 4\n"::"r"(0));
+       asm volatile("mcr p15, 0, %0, c7, c10, 4\n"::"r"(0));
 }
 
 void flush_cache(unsigned long start, unsigned long size)