@@ -22,6 +22,13 @@
static int testflag = 0;
+static void wait_for_flag(void)
+{
+ while (!testflag) {
+ mb();
+ }
+}
+
static void cpu_loop(void)
{
for (;;) {}
@@ -37,13 +44,11 @@ static void test_func(void)
static void test_start(void)
{
struct psw psw;
- psw.mask = extract_psw_mask();
+ psw.mask = extract_psw_mask();
psw.addr = (unsigned long)test_func;
smp_cpu_setup(1, psw);
- while (!testflag) {
- mb();
- }
+ wait_for_flag();
report(1, "start");
}
@@ -115,24 +120,24 @@ static void ecall(void)
testflag = 1;
while (lc->ext_int_code != 0x1202) { mb(); }
report(1, "ecall");
- testflag= 1;
+ testflag = 1;
}
static void test_ecall(void)
{
struct psw psw;
- psw.mask = extract_psw_mask();
+ psw.mask = extract_psw_mask();
psw.addr = (unsigned long)ecall;
report_prefix_push("ecall");
- testflag= 0;
+ testflag = 0;
smp_cpu_destroy(1);
smp_cpu_setup(1, psw);
- while (!testflag) { mb(); }
- testflag= 0;
+ wait_for_flag();
+ testflag = 0;
sigp(1, SIGP_EXTERNAL_CALL, 0, NULL);
- while(!testflag) {mb();}
+ wait_for_flag();
smp_cpu_stop(1);
report_prefix_pop();
}
@@ -147,7 +152,7 @@ static void emcall(void)
mask = extract_psw_mask();
mask |= PSW_MASK_EXT;
load_psw_mask(mask);
- testflag= 1;
+ testflag = 1;
while (lc->ext_int_code != 0x1201) { mb(); }
report(1, "ecall");
testflag = 1;
@@ -156,18 +161,18 @@ static void emcall(void)
static void test_emcall(void)
{
struct psw psw;
- psw.mask = extract_psw_mask();
+ psw.mask = extract_psw_mask();
psw.addr = (unsigned long)emcall;
report_prefix_push("emcall");
- testflag= 0;
+ testflag = 0;
smp_cpu_destroy(1);
smp_cpu_setup(1, psw);
- while (!testflag) { mb(); }
- testflag= 0;
+ wait_for_flag();
+ testflag = 0;
sigp(1, SIGP_EMERGENCY_SIGNAL, 0, NULL);
- while(!testflag) { mb(); }
+ wait_for_flag();
smp_cpu_stop(1);
report_prefix_pop();
}
@@ -177,7 +182,7 @@ static void test_reset_initial(void)
struct cpu_status *status = alloc_pages(0);
struct psw psw;
- psw.mask = extract_psw_mask();
+ psw.mask = extract_psw_mask();
psw.addr = (unsigned long)test_func;
report_prefix_push("reset initial");
@@ -208,7 +213,7 @@ static void test_reset(void)
{
struct psw psw;
- psw.mask = extract_psw_mask();
+ psw.mask = extract_psw_mask();
psw.addr = (unsigned long)test_func;
report_prefix_push("cpu reset");
Let's remove a lot of badly formatted code by introducing the wait_for_flag() function. Also let's remove some stray spaces. Signed-off-by: Janosch Frank <frankja@linux.ibm.com> --- s390x/smp.c | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-)