提交 3d68286a 编写于 作者: H Heiko Carstens 提交者: Martin Schwidefsky

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: NHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
上级 f9e6edfb
...@@ -34,7 +34,7 @@ struct mcck_struct { ...@@ -34,7 +34,7 @@ struct mcck_struct {
static DEFINE_PER_CPU(struct mcck_struct, cpu_mcck); 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(); smp_send_stop();
disabled_wait((unsigned long) __builtin_return_address(0)); disabled_wait((unsigned long) __builtin_return_address(0));
...@@ -195,7 +195,7 @@ static int notrace s390_revalidate_registers(struct mci *mci) ...@@ -195,7 +195,7 @@ static int notrace s390_revalidate_registers(struct mci *mci)
* Control registers have unknown contents. * Control registers have unknown contents.
* Can't recover and therefore stopping machine. * Can't recover and therefore stopping machine.
*/ */
s390_handle_damage("invalid control registers."); s390_handle_damage();
} else { } else {
asm volatile( asm volatile(
" lctlg 0,15,0(%0)" " lctlg 0,15,0(%0)"
...@@ -228,7 +228,7 @@ static int notrace s390_revalidate_registers(struct mci *mci) ...@@ -228,7 +228,7 @@ static int notrace s390_revalidate_registers(struct mci *mci)
* Can't tell if we come from user or kernel mode * Can't tell if we come from user or kernel mode
* -> stopping machine. * -> stopping machine.
*/ */
s390_handle_damage("old psw invalid."); s390_handle_damage();
if (!mci->ms || !mci->pm || !mci->ia) if (!mci->ms || !mci->pm || !mci->ia)
kill_task = 1; kill_task = 1;
...@@ -265,7 +265,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs) ...@@ -265,7 +265,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
if (mci->sd) { if (mci->sd) {
/* System damage -> stopping machine */ /* System damage -> stopping machine */
s390_handle_damage("received system damage machine check."); s390_handle_damage();
} }
if (mci->pd) { if (mci->pd) {
if (mci->b) { if (mci->b) {
...@@ -280,8 +280,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs) ...@@ -280,8 +280,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
if (((t_mcic & z_mcic) != 0) || if (((t_mcic & z_mcic) != 0) ||
((t_mcic & o_mcic) != o_mcic)) { ((t_mcic & o_mcic) != o_mcic)) {
s390_handle_damage("processing backup machine " s390_handle_damage();
"check with damage.");
} }
/* /*
...@@ -296,12 +295,11 @@ void notrace s390_do_machine_check(struct pt_regs *regs) ...@@ -296,12 +295,11 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
ipd_count = 1; ipd_count = 1;
last_ipd = tmp; last_ipd = tmp;
if (ipd_count == MAX_IPD_COUNT) if (ipd_count == MAX_IPD_COUNT)
s390_handle_damage("too many ipd retries."); s390_handle_damage();
spin_unlock(&ipd_lock); spin_unlock(&ipd_lock);
} else { } else {
/* Processing damage -> stopping machine */ /* Processing damage -> stopping machine */
s390_handle_damage("received instruction processing " s390_handle_damage();
"damage machine check.");
} }
} }
if (s390_revalidate_registers(mci)) { if (s390_revalidate_registers(mci)) {
...@@ -318,12 +316,12 @@ void notrace s390_do_machine_check(struct pt_regs *regs) ...@@ -318,12 +316,12 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
* Couldn't restore all register contents while in * Couldn't restore all register contents while in
* kernel mode -> stopping machine. * kernel mode -> stopping machine.
*/ */
s390_handle_damage("unable to revalidate registers."); s390_handle_damage();
} }
} }
if (mci->cd) { if (mci->cd) {
/* Timing facility damage */ /* Timing facility damage */
s390_handle_damage("TOD clock damaged"); s390_handle_damage();
} }
if (mci->ed && mci->ec) { if (mci->ed && mci->ec) {
/* External damage */ /* External damage */
...@@ -340,16 +338,13 @@ void notrace s390_do_machine_check(struct pt_regs *regs) ...@@ -340,16 +338,13 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
} }
if (mci->se) if (mci->se)
/* Storage error uncorrected */ /* Storage error uncorrected */
s390_handle_damage("received storage error uncorrected " s390_handle_damage();
"machine check.");
if (mci->ke) if (mci->ke)
/* Storage key-error uncorrected */ /* Storage key-error uncorrected */
s390_handle_damage("received storage key-error uncorrected " s390_handle_damage();
"machine check.");
if (mci->ds && mci->fa) if (mci->ds && mci->fa)
/* Storage degradation */ /* Storage degradation */
s390_handle_damage("received storage degradation machine " s390_handle_damage();
"check.");
if (mci->cp) { if (mci->cp) {
/* Channel report word pending */ /* Channel report word pending */
mcck->channel_report = 1; mcck->channel_report = 1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册