POST: Add disable interrupts in some of the missing CPU POST tests

Some CPU POST tests did not disable the interrupts while running. This
seems to be necessary to protect this self modifying code.

Signed-off-by: Stefan Roese <sr@denx.de>
diff --git a/post/lib_ppc/b.c b/post/lib_ppc/b.c
index 45b9ff2..7a2583d 100644
--- a/post/lib_ppc/b.c
+++ b/post/lib_ppc/b.c
@@ -95,6 +95,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     if (ret == 0)
     {
@@ -188,6 +189,9 @@
 	}
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/cmp.c b/post/lib_ppc/cmp.c
index 8d80f86..13809d4 100644
--- a/post/lib_ppc/cmp.c
+++ b/post/lib_ppc/cmp.c
@@ -102,6 +102,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     for (i = 0; i < cpu_post_cmp_size && ret == 0; i++)
     {
@@ -124,6 +125,9 @@
 	}
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/cmpi.c b/post/lib_ppc/cmpi.c
index 92b4d57..5ecfe87 100644
--- a/post/lib_ppc/cmpi.c
+++ b/post/lib_ppc/cmpi.c
@@ -102,6 +102,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     for (i = 0; i < cpu_post_cmpi_size && ret == 0; i++)
     {
@@ -124,6 +125,9 @@
 	}
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/complex.c b/post/lib_ppc/complex.c
index 271392a..4983c51 100644
--- a/post/lib_ppc/complex.c
+++ b/post/lib_ppc/complex.c
@@ -101,6 +101,7 @@
 int cpu_post_test_complex (void)
 {
     int ret = 0;
+    int flag = disable_interrupts();
 
     if (ret == 0)
     {
@@ -117,6 +118,9 @@
 	post_log ("Error at complex test !\n");
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/cr.c b/post/lib_ppc/cr.c
index 0bd9e74..2c7976a 100644
--- a/post/lib_ppc/cr.c
+++ b/post/lib_ppc/cr.c
@@ -248,6 +248,7 @@
     int ret = 0;
     unsigned int i;
     unsigned long cr_sav;
+    int flag = disable_interrupts();
 
     asm ( "mfcr %0" : "=r" (cr_sav) : );
 
@@ -347,6 +348,9 @@
 
     asm ( "mtcr %0" : : "r" (cr_sav));
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/load.c b/post/lib_ppc/load.c
index 86bc223..eccebb7 100644
--- a/post/lib_ppc/load.c
+++ b/post/lib_ppc/load.c
@@ -178,6 +178,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     for (i = 0; i < cpu_post_load_size && ret == 0; i++)
     {
@@ -246,6 +247,9 @@
 	}
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/multi.c b/post/lib_ppc/multi.c
index 5d3f584..47135ab 100644
--- a/post/lib_ppc/multi.c
+++ b/post/lib_ppc/multi.c
@@ -44,6 +44,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     if (ret == 0)
     {
@@ -72,6 +73,9 @@
 	post_log ("Error at multi test !\n");
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/store.c b/post/lib_ppc/store.c
index 09ec485..c96f263 100644
--- a/post/lib_ppc/store.c
+++ b/post/lib_ppc/store.c
@@ -163,6 +163,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     for (i = 0; i < cpu_post_store_size && ret == 0; i++)
     {
@@ -226,6 +227,9 @@
 	}
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/string.c b/post/lib_ppc/string.c
index b2daa88..3683ac9 100644
--- a/post/lib_ppc/string.c
+++ b/post/lib_ppc/string.c
@@ -47,6 +47,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     if (ret == 0)
     {
@@ -97,6 +98,9 @@
 	post_log ("Error at string test !\n");
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }