sh: avoid multiple definition errors with cache funcs
authorMike Frysinger <vapier@gentoo.org>
Thu, 27 Oct 2011 08:59:59 +0000 (04:59 -0400)
committerNobuhiro Iwamatsu <iwamatsu@nigauri.org>
Fri, 2 Dec 2011 04:46:21 +0000 (13:46 +0900)
Recent builds for SH4 boards fail with a lot of errors like:
cmd_mem.o: In function 'dcache_invalid_range':
include/asm/cache.h:25: multiple definition of 'dcache_invalid_range'
include/asm/cache.h:25: first defined here

This is due to the funcs being defined in the header, but not static
or inline or extern.  So move them to the sh4-specific cache.c file.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
arch/sh/cpu/sh4/cache.c
arch/sh/include/asm/cache.h

index 377005cd4d32aa4bea01016d7480bcc369acae60..dc75e3981cf55fdf7d2e4fee732f51b3d3fc9caa 100644 (file)
@@ -106,3 +106,25 @@ int cache_control(unsigned int cmd)
 
        return 0;
 }
+
+void dcache_wback_range(u32 start, u32 end)
+{
+       u32 v;
+
+       start &= ~(L1_CACHE_BYTES - 1);
+       for (v = start; v < end; v += L1_CACHE_BYTES) {
+               asm volatile ("ocbwb     %0" :  /* no output */
+                             : "m" (__m(v)));
+       }
+}
+
+void dcache_invalid_range(u32 start, u32 end)
+{
+       u32 v;
+
+       start &= ~(L1_CACHE_BYTES - 1);
+       for (v = start; v < end; v += L1_CACHE_BYTES) {
+               asm volatile ("ocbi     %0" :   /* no output */
+                             : "m" (__m(v)));
+       }
+}
index 6ffab4d37448d56fd6789216bb7addbe3ac18e4c..24941b3019a222d3b7c9f974ef5e5964cf6505a9 100644 (file)
@@ -10,27 +10,9 @@ int cache_control(unsigned int cmd);
 struct __large_struct { unsigned long buf[100]; };
 #define __m(x) (*(struct __large_struct *)(x))
 
-void dcache_wback_range(u32 start, u32 end)
-{
-       u32 v;
-
-       start &= ~(L1_CACHE_BYTES - 1);
-       for (v = start; v < end; v += L1_CACHE_BYTES) {
-               asm volatile ("ocbwb     %0" :  /* no output */
-                             : "m" (__m(v)));
-       }
-}
-
-void dcache_invalid_range(u32 start, u32 end)
-{
-       u32 v;
-
-       start &= ~(L1_CACHE_BYTES - 1);
-       for (v = start; v < end; v += L1_CACHE_BYTES) {
-               asm volatile ("ocbi     %0" :   /* no output */
-                             : "m" (__m(v)));
-       }
-}
+void dcache_wback_range(u32 start, u32 end);
+void dcache_invalid_range(u32 start, u32 end);
+
 #else
 
 /*