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>
@@ -95,6 +95,7 @@ int cpu_post_test_b (void)
{
int ret = 0;
unsigned int i;
+ int flag = disable_interrupts();
if (ret == 0)
@@ -188,6 +189,9 @@ int cpu_post_test_b (void)
}
+ if (flag)
+ enable_interrupts();
+
return ret;
@@ -102,6 +102,7 @@ int cpu_post_test_cmp (void)
for (i = 0; i < cpu_post_cmp_size && ret == 0; i++)
@@ -124,6 +125,9 @@ int cpu_post_test_cmp (void)
@@ -102,6 +102,7 @@ int cpu_post_test_cmpi (void)
for (i = 0; i < cpu_post_cmpi_size && ret == 0; i++)
@@ -124,6 +125,9 @@ int cpu_post_test_cmpi (void)
@@ -101,6 +101,7 @@ static int cpu_post_test_complex_2 (void)
int cpu_post_test_complex (void)
@@ -117,6 +118,9 @@ int cpu_post_test_complex (void)
post_log ("Error at complex test !\n");
@@ -248,6 +248,7 @@ int cpu_post_test_cr (void)
unsigned long cr_sav;
asm ( "mfcr %0" : "=r" (cr_sav) : );
@@ -347,6 +348,9 @@ int cpu_post_test_cr (void)
asm ( "mtcr %0" : : "r" (cr_sav));
@@ -178,6 +178,7 @@ int cpu_post_test_load (void)
for (i = 0; i < cpu_post_load_size && ret == 0; i++)
@@ -246,6 +247,9 @@ int cpu_post_test_load (void)
@@ -44,6 +44,7 @@ int cpu_post_test_multi (void)
@@ -72,6 +73,9 @@ int cpu_post_test_multi (void)
post_log ("Error at multi test !\n");
@@ -163,6 +163,7 @@ int cpu_post_test_store (void)
for (i = 0; i < cpu_post_store_size && ret == 0; i++)
@@ -226,6 +227,9 @@ int cpu_post_test_store (void)
@@ -47,6 +47,7 @@ int cpu_post_test_string (void)
@@ -97,6 +98,9 @@ int cpu_post_test_string (void)
post_log ("Error at string test !\n");