VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / arch / ppc64 / kernel / iSeries_setup.c
index f2271fd..e12b50f 100644 (file)
@@ -357,15 +357,14 @@ void __init iSeries_init(unsigned long r3, unsigned long r4, unsigned long r5,
        HvCallEvent_dmaToSp(cmd_line, 2 * 64* 1024, 256,
                        HvLpDma_Direction_RemoteToLocal);
 
-       p = q = cmd_line + 255;
-       while (p > cmd_line) {
-               if ((*p == 0) || (*p == ' ') || (*p == '\n'))
-                       --p;
-               else
+       p = cmd_line;
+       q = cmd_line + 255;
+       while( p < q ) {
+               if (!*p || *p == '\n')
                        break;
+               ++p;
        }
-       if (p < q)
-               *(p + 1) = 0;
+       *p = 0;
 
         if (strstr(cmd_line, "dprofile=")) {
                 for (q = cmd_line; (p = strstr(q, "dprofile=")) != 0; ) {
@@ -563,11 +562,6 @@ static void __init build_iSeries_Memory_Map(void)
        lmb_add(0, systemcfg->physicalMemorySize);
        lmb_analyze();  /* ?? */
        lmb_reserve(0, __pa(klimit));
-
-       /* 
-        * Hardcode to GP size.  I am not sure where to get this info. DRENG
-        */
-       naca->slb_size = 64;
 }
 
 /*
@@ -577,7 +571,7 @@ static void __init build_iSeries_Memory_Map(void)
 static void __init setup_iSeries_cache_sizes(void)
 {
        unsigned int i, n;
-       unsigned int procIx = get_paca()->xLpPaca.xDynHvPhysicalProcIndex;
+       unsigned int procIx = get_paca()->lppaca.xDynHvPhysicalProcIndex;
 
        systemcfg->iCacheL1Size =
                xIoHriProcessorVpd[procIx].xInstCacheSize * 1024;
@@ -671,7 +665,7 @@ extern unsigned long ppc_tb_freq;
 void __init iSeries_setup_arch(void)
 {
        void *eventStack;
-       unsigned procIx = get_paca()->xLpPaca.xDynHvPhysicalProcIndex;
+       unsigned procIx = get_paca()->lppaca.xDynHvPhysicalProcIndex;
 
        /* Add an eye catcher and the systemcfg layout version number */
        strcpy(systemcfg->eye_catcher, "SYSTEMCFG:PPC64");
@@ -858,3 +852,12 @@ static void iSeries_setup_dprofile(void)
                }
        }
 }
+
+int __init iSeries_src_init(void)
+{
+        /* clear the progress line */
+        ppc_md.progress(" ", 0xffff);
+        return 0;
+}
+
+late_initcall(iSeries_src_init);