]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/ppc64/kernel/pSeries_lpar.c
[PATCH] w1: Added add/remove slave callbacks.
[linux-2.6-omap-h63xx.git] / arch / ppc64 / kernel / pSeries_lpar.c
index 56845543c891b29ba3a178ca6649122e7c9578f2..a6de83f2078fc70c563fb6d487d789f0201e430f 100644 (file)
@@ -192,9 +192,9 @@ static unsigned char udbg_getcLP(void)
 void udbg_init_debug_lpar(void)
 {
        vtermno = 0;
-       ppc_md.udbg_putc = udbg_putcLP;
-       ppc_md.udbg_getc = udbg_getcLP;
-       ppc_md.udbg_getc_poll = udbg_getc_pollLP;
+       udbg_putc = udbg_putcLP;
+       udbg_getc = udbg_getcLP;
+       udbg_getc_poll = udbg_getc_pollLP;
 }
 
 /* returns 0 if couldn't find or use /chosen/stdout as console */
@@ -227,18 +227,18 @@ int find_udbg_vterm(void)
                        termno = (u32 *)get_property(stdout_node, "reg", NULL);
                        if (termno) {
                                vtermno = termno[0];
-                               ppc_md.udbg_putc = udbg_putcLP;
-                               ppc_md.udbg_getc = udbg_getcLP;
-                               ppc_md.udbg_getc_poll = udbg_getc_pollLP;
+                               udbg_putc = udbg_putcLP;
+                               udbg_getc = udbg_getcLP;
+                               udbg_getc_poll = udbg_getc_pollLP;
                                found = 1;
                        }
                } else if (device_is_compatible(stdout_node, "hvterm-protocol")) {
                        termno = (u32 *)get_property(stdout_node, "reg", NULL);
                        if (termno) {
                                vtermno = termno[0];
-                               ppc_md.udbg_putc = udbg_hvsi_putc;
-                               ppc_md.udbg_getc = udbg_hvsi_getc;
-                               ppc_md.udbg_getc_poll = udbg_hvsi_getc_poll;
+                               udbg_putc = udbg_hvsi_putc;
+                               udbg_getc = udbg_hvsi_getc;
+                               udbg_getc_poll = udbg_hvsi_getc_poll;
                                found = 1;
                        }
                }
@@ -266,6 +266,10 @@ void vpa_init(int cpu)
 
        /* Register the Virtual Processor Area (VPA) */
        flags = 1UL << (63 - 18);
+
+       if (cpu_has_feature(CPU_FTR_ALTIVEC))
+               paca[cpu].lppaca.vmxregs_in_use = 1;
+
        ret = register_vpa(flags, hwcpu, __pa(vpa));
 
        if (ret)
@@ -278,7 +282,6 @@ long pSeries_lpar_hpte_insert(unsigned long hpte_group,
                              unsigned long va, unsigned long prpn,
                              unsigned long vflags, unsigned long rflags)
 {
-       unsigned long arpn = physRpn_to_absRpn(prpn);
        unsigned long lpar_rc;
        unsigned long flags;
        unsigned long slot;
@@ -289,7 +292,7 @@ long pSeries_lpar_hpte_insert(unsigned long hpte_group,
        if (vflags & HPTE_V_LARGE)
                hpte_v &= ~(1UL << HPTE_V_AVPN_SHIFT);
 
-       hpte_r = (arpn << HPTE_R_RPN_SHIFT) | rflags;
+       hpte_r = (prpn << HPTE_R_RPN_SHIFT) | rflags;
 
        /* Now fill in the actual HPTE */
        /* Set CEC cookie to 0         */