powerpc: Fix some endian issues in xics code
authorAnton Blanchard <anton@samba.org>
Tue, 6 Aug 2013 16:01:35 +0000 (02:01 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 14 Aug 2013 05:33:25 +0000 (15:33 +1000)
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/sysdev/xics/xics-common.c

index 9049d9f..fe0cca4 100644 (file)
@@ -49,7 +49,7 @@ void xics_update_irq_servers(void)
        int i, j;
        struct device_node *np;
        u32 ilen;
-       const u32 *ireg;
+       const __be32 *ireg;
        u32 hcpuid;
 
        /* Find the server numbers for the boot cpu. */
@@ -75,8 +75,8 @@ void xics_update_irq_servers(void)
         * default distribution server
         */
        for (j = 0; j < i; j += 2) {
-               if (ireg[j] == hcpuid) {
-                       xics_default_distrib_server = ireg[j+1];
+               if (be32_to_cpu(ireg[j]) == hcpuid) {
+                       xics_default_distrib_server = be32_to_cpu(ireg[j+1]);
                        break;
                }
        }
@@ -383,7 +383,7 @@ void __init xics_register_ics(struct ics *ics)
 static void __init xics_get_server_size(void)
 {
        struct device_node *np;
-       const u32 *isize;
+       const __be32 *isize;
 
        /* We fetch the interrupt server size from the first ICS node
         * we find if any
@@ -394,7 +394,7 @@ static void __init xics_get_server_size(void)
        isize = of_get_property(np, "ibm,interrupt-server#-size", NULL);
        if (!isize)
                return;
-       xics_interrupt_server_size = *isize;
+       xics_interrupt_server_size = be32_to_cpu(*isize);
        of_node_put(np);
 }