summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/ipl.c
diff options
context:
space:
mode:
authorMartin Schwidefsky2019-04-30 12:33:45 +0200
committerMartin Schwidefsky2019-05-02 13:54:11 +0200
commit98587c2d894c34c9af5cd84ca169e1cd493aa692 (patch)
treecced9b62cec4042ed7567fa3f834e861d4b73487 /arch/s390/kernel/ipl.c
parents390/ftrace: use HAVE_FUNCTION_GRAPH_RET_ADDR_PTR (diff)
downloadkernel-qcow2-linux-98587c2d894c34c9af5cd84ca169e1cd493aa692.tar.gz
kernel-qcow2-linux-98587c2d894c34c9af5cd84ca169e1cd493aa692.tar.xz
kernel-qcow2-linux-98587c2d894c34c9af5cd84ca169e1cd493aa692.zip
s390: simplify disabled_wait
The disabled_wait() function uses its argument as the PSW address when it stops the CPU with a wait PSW that is disabled for interrupts. The different callers sometimes use a specific number like 0xdeadbeef to indicate a specific failure, the early boot code uses 0 and some other calls sites use __builtin_return_address(0). At the time a dump is created the current PSW and the registers of a CPU are written to lowcore to make them avaiable to the dump analysis tool. For a CPU stopped with disabled_wait the PSW and the registers do not really make sense together, the PSW address does not point to the function the registers belong to. Simplify disabled_wait() by using _THIS_IP_ for the PSW address and drop the argument to the function. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/ipl.c')
-rw-r--r--arch/s390/kernel/ipl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index aa8fe768640e..d836af3ccc38 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -920,7 +920,7 @@ static void __reipl_run(void *unused)
case IPL_TYPE_FCP_DUMP:
break;
}
- disabled_wait((unsigned long) __builtin_return_address(0));
+ disabled_wait();
}
static void reipl_run(struct shutdown_trigger *trigger)
@@ -1375,7 +1375,7 @@ static void stop_run(struct shutdown_trigger *trigger)
{
if (strcmp(trigger->name, ON_PANIC_STR) == 0 ||
strcmp(trigger->name, ON_RESTART_STR) == 0)
- disabled_wait((unsigned long) __builtin_return_address(0));
+ disabled_wait();
smp_stop_cpu();
}