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

index 9d5bae118d7e46dd78f4bd7e5616040a56f5d509..45f2d1fac670ef64f8b87027c853ba4b7736686d 100644 (file)
@@ -320,14 +320,14 @@ static void __init initialize_cache_info(void)
                 * d-cache and i-cache sizes... -Peter
                 */
                if (num_cpus == 1) {
-                       const u32 *sizep, *lsizep;
+                       const __be32 *sizep, *lsizep;
                        u32 size, lsize;
 
                        size = 0;
                        lsize = cur_cpu_spec->dcache_bsize;
                        sizep = of_get_property(np, "d-cache-size", NULL);
                        if (sizep != NULL)
-                               size = *sizep;
+                               size = be32_to_cpu(*sizep);
                        lsizep = of_get_property(np, "d-cache-block-size",
                                                 NULL);
                        /* fallback if block size missing */
@@ -336,7 +336,7 @@ static void __init initialize_cache_info(void)
                                                         "d-cache-line-size",
                                                         NULL);
                        if (lsizep != NULL)
-                               lsize = *lsizep;
+                               lsize = be32_to_cpu(*lsizep);
                        if (sizep == NULL || lsizep == NULL)
                                DBG("Argh, can't find dcache properties ! "
                                    "sizep: %p, lsizep: %p\n", sizep, lsizep);
@@ -350,7 +350,7 @@ static void __init initialize_cache_info(void)
                        lsize = cur_cpu_spec->icache_bsize;
                        sizep = of_get_property(np, "i-cache-size", NULL);
                        if (sizep != NULL)
-                               size = *sizep;
+                               size = be32_to_cpu(*sizep);
                        lsizep = of_get_property(np, "i-cache-block-size",
                                                 NULL);
                        if (lsizep == NULL)
@@ -358,7 +358,7 @@ static void __init initialize_cache_info(void)
                                                         "i-cache-line-size",
                                                         NULL);
                        if (lsizep != NULL)
-                               lsize = *lsizep;
+                               lsize = be32_to_cpu(*lsizep);
                        if (sizep == NULL || lsizep == NULL)
                                DBG("Argh, can't find icache properties ! "
                                    "sizep: %p, lsizep: %p\n", sizep, lsizep);