powerpc: Make device tree accesses in cache info code endian safe
authorAnton Blanchard <anton@samba.org>
Tue, 6 Aug 2013 16:01:37 +0000 (02:01 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 14 Aug 2013 05:33:27 +0000 (15:33 +1000)
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/cacheinfo.c

index 9262cf2..6549327 100644 (file)
@@ -196,7 +196,7 @@ static void cache_cpu_set(struct cache *cache, int cpu)
 static int cache_size(const struct cache *cache, unsigned int *ret)
 {
        const char *propname;
-       const u32 *cache_size;
+       const __be32 *cache_size;
 
        propname = cache_type_info[cache->type].size_prop;
 
@@ -204,7 +204,7 @@ static int cache_size(const struct cache *cache, unsigned int *ret)
        if (!cache_size)
                return -ENODEV;
 
-       *ret = *cache_size;
+       *ret = of_read_number(cache_size, 1);
        return 0;
 }
 
@@ -222,7 +222,7 @@ static int cache_size_kb(const struct cache *cache, unsigned int *ret)
 /* not cache_line_size() because that's a macro in include/linux/cache.h */
 static int cache_get_line_size(const struct cache *cache, unsigned int *ret)
 {
-       const u32 *line_size;
+       const __be32 *line_size;
        int i, lim;
 
        lim = ARRAY_SIZE(cache_type_info[cache->type].line_size_props);
@@ -239,14 +239,14 @@ static int cache_get_line_size(const struct cache *cache, unsigned int *ret)
        if (!line_size)
                return -ENODEV;
 
-       *ret = *line_size;
+       *ret = of_read_number(line_size, 1);
        return 0;
 }
 
 static int cache_nr_sets(const struct cache *cache, unsigned int *ret)
 {
        const char *propname;
-       const u32 *nr_sets;
+       const __be32 *nr_sets;
 
        propname = cache_type_info[cache->type].nr_sets_prop;
 
@@ -254,7 +254,7 @@ static int cache_nr_sets(const struct cache *cache, unsigned int *ret)
        if (!nr_sets)
                return -ENODEV;
 
-       *ret = *nr_sets;
+       *ret = of_read_number(nr_sets, 1);
        return 0;
 }