summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2015-10-12 12:39:09 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-10-27 09:33:54 +0100
commit3d68286a4304574c250ca3b0a5429d2901688f16 (patch)
tree8c5c4d6e66f61d6db1ea4a3855b5f08e6b59bc5a
parents390: don't store registers on disabled wait anymore (diff)
downloadlinux-3d68286a4304574c250ca3b0a5429d2901688f16.tar.xz
linux-3d68286a4304574c250ca3b0a5429d2901688f16.zip
s390/nmi: remove pointless error strings
s390_handle_damage() has character string parameter which was used as a pointer to verbose error message. The hope was (a lot of years ago) when analyzing dumps that register R2 would still contain the pointer and therefore it would be rather easy to tell what went wrong. However gcc optimizes the strings away since a long time. And even if it wouldn't it is necessary to have a close look at the machine check interruption code to tell what's wrong. So remove the pointless error strings. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/kernel/nmi.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/arch/s390/kernel/nmi.c b/arch/s390/kernel/nmi.c
index faa40bf622f8..a98aab1f987b 100644
--- a/arch/s390/kernel/nmi.c
+++ b/arch/s390/kernel/nmi.c
@@ -34,7 +34,7 @@ struct mcck_struct {
static DEFINE_PER_CPU(struct mcck_struct, cpu_mcck);
-static void s390_handle_damage(char *msg)
+static void s390_handle_damage(void)
{
smp_send_stop();
disabled_wait((unsigned long) __builtin_return_address(0));
@@ -195,7 +195,7 @@ static int notrace s390_revalidate_registers(struct mci *mci)
* Control registers have unknown contents.
* Can't recover and therefore stopping machine.
*/
- s390_handle_damage("invalid control registers.");
+ s390_handle_damage();
} else {
asm volatile(
" lctlg 0,15,0(%0)"
@@ -228,7 +228,7 @@ static int notrace s390_revalidate_registers(struct mci *mci)
* Can't tell if we come from user or kernel mode
* -> stopping machine.
*/
- s390_handle_damage("old psw invalid.");
+ s390_handle_damage();
if (!mci->ms || !mci->pm || !mci->ia)
kill_task = 1;
@@ -265,7 +265,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
if (mci->sd) {
/* System damage -> stopping machine */
- s390_handle_damage("received system damage machine check.");
+ s390_handle_damage();
}
if (mci->pd) {
if (mci->b) {
@@ -280,8 +280,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
if (((t_mcic & z_mcic) != 0) ||
((t_mcic & o_mcic) != o_mcic)) {
- s390_handle_damage("processing backup machine "
- "check with damage.");
+ s390_handle_damage();
}
/*
@@ -296,12 +295,11 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
ipd_count = 1;
last_ipd = tmp;
if (ipd_count == MAX_IPD_COUNT)
- s390_handle_damage("too many ipd retries.");
+ s390_handle_damage();
spin_unlock(&ipd_lock);
} else {
/* Processing damage -> stopping machine */
- s390_handle_damage("received instruction processing "
- "damage machine check.");
+ s390_handle_damage();
}
}
if (s390_revalidate_registers(mci)) {
@@ -318,12 +316,12 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
* Couldn't restore all register contents while in
* kernel mode -> stopping machine.
*/
- s390_handle_damage("unable to revalidate registers.");
+ s390_handle_damage();
}
}
if (mci->cd) {
/* Timing facility damage */
- s390_handle_damage("TOD clock damaged");
+ s390_handle_damage();
}
if (mci->ed && mci->ec) {
/* External damage */
@@ -340,16 +338,13 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
}
if (mci->se)
/* Storage error uncorrected */
- s390_handle_damage("received storage error uncorrected "
- "machine check.");
+ s390_handle_damage();
if (mci->ke)
/* Storage key-error uncorrected */
- s390_handle_damage("received storage key-error uncorrected "
- "machine check.");
+ s390_handle_damage();
if (mci->ds && mci->fa)
/* Storage degradation */
- s390_handle_damage("received storage degradation machine "
- "check.");
+ s390_handle_damage();
if (mci->cp) {
/* Channel report word pending */
mcck->channel_report = 1;