aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/nmi.c
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2015-10-12 06:39:09 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-10-27 04:33:54 -0400
commit3d68286a4304574c250ca3b0a5429d2901688f16 (patch)
tree8c5c4d6e66f61d6db1ea4a3855b5f08e6b59bc5a /arch/s390/kernel/nmi.c
parentf9e6edfb9cf780edfe0a649a85ed00032e787f69 (diff)
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>
Diffstat (limited to 'arch/s390/kernel/nmi.c')
-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 {
34 34
35static DEFINE_PER_CPU(struct mcck_struct, cpu_mcck); 35static DEFINE_PER_CPU(struct mcck_struct, cpu_mcck);
36 36
37static void s390_handle_damage(char *msg) 37static void s390_handle_damage(void)
38{ 38{
39 smp_send_stop(); 39 smp_send_stop();
40 disabled_wait((unsigned long) __builtin_return_address(0)); 40 disabled_wait((unsigned long) __builtin_return_address(0));
@@ -195,7 +195,7 @@ static int notrace s390_revalidate_registers(struct mci *mci)
195 * Control registers have unknown contents. 195 * Control registers have unknown contents.
196 * Can't recover and therefore stopping machine. 196 * Can't recover and therefore stopping machine.
197 */ 197 */
198 s390_handle_damage("invalid control registers."); 198 s390_handle_damage();
199 } else { 199 } else {
200 asm volatile( 200 asm volatile(
201 " lctlg 0,15,0(%0)" 201 " lctlg 0,15,0(%0)"
@@ -228,7 +228,7 @@ static int notrace s390_revalidate_registers(struct mci *mci)
228 * Can't tell if we come from user or kernel mode 228 * Can't tell if we come from user or kernel mode
229 * -> stopping machine. 229 * -> stopping machine.
230 */ 230 */
231 s390_handle_damage("old psw invalid."); 231 s390_handle_damage();
232 232
233 if (!mci->ms || !mci->pm || !mci->ia) 233 if (!mci->ms || !mci->pm || !mci->ia)
234 kill_task = 1; 234 kill_task = 1;
@@ -265,7 +265,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
265 265
266 if (mci->sd) { 266 if (mci->sd) {
267 /* System damage -> stopping machine */ 267 /* System damage -> stopping machine */
268 s390_handle_damage("received system damage machine check."); 268 s390_handle_damage();
269 } 269 }
270 if (mci->pd) { 270 if (mci->pd) {
271 if (mci->b) { 271 if (mci->b) {
@@ -280,8 +280,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
280 280
281 if (((t_mcic & z_mcic) != 0) || 281 if (((t_mcic & z_mcic) != 0) ||
282 ((t_mcic & o_mcic) != o_mcic)) { 282 ((t_mcic & o_mcic) != o_mcic)) {
283 s390_handle_damage("processing backup machine " 283 s390_handle_damage();
284 "check with damage.");
285 } 284 }
286 285
287 /* 286 /*
@@ -296,12 +295,11 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
296 ipd_count = 1; 295 ipd_count = 1;
297 last_ipd = tmp; 296 last_ipd = tmp;
298 if (ipd_count == MAX_IPD_COUNT) 297 if (ipd_count == MAX_IPD_COUNT)
299 s390_handle_damage("too many ipd retries."); 298 s390_handle_damage();
300 spin_unlock(&ipd_lock); 299 spin_unlock(&ipd_lock);
301 } else { 300 } else {
302 /* Processing damage -> stopping machine */ 301 /* Processing damage -> stopping machine */
303 s390_handle_damage("received instruction processing " 302 s390_handle_damage();
304 "damage machine check.");
305 } 303 }
306 } 304 }
307 if (s390_revalidate_registers(mci)) { 305 if (s390_revalidate_registers(mci)) {
@@ -318,12 +316,12 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
318 * Couldn't restore all register contents while in 316 * Couldn't restore all register contents while in
319 * kernel mode -> stopping machine. 317 * kernel mode -> stopping machine.
320 */ 318 */
321 s390_handle_damage("unable to revalidate registers."); 319 s390_handle_damage();
322 } 320 }
323 } 321 }
324 if (mci->cd) { 322 if (mci->cd) {
325 /* Timing facility damage */ 323 /* Timing facility damage */
326 s390_handle_damage("TOD clock damaged"); 324 s390_handle_damage();
327 } 325 }
328 if (mci->ed && mci->ec) { 326 if (mci->ed && mci->ec) {
329 /* External damage */ 327 /* External damage */
@@ -340,16 +338,13 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
340 } 338 }
341 if (mci->se) 339 if (mci->se)
342 /* Storage error uncorrected */ 340 /* Storage error uncorrected */
343 s390_handle_damage("received storage error uncorrected " 341 s390_handle_damage();
344 "machine check.");
345 if (mci->ke) 342 if (mci->ke)
346 /* Storage key-error uncorrected */ 343 /* Storage key-error uncorrected */
347 s390_handle_damage("received storage key-error uncorrected " 344 s390_handle_damage();
348 "machine check.");
349 if (mci->ds && mci->fa) 345 if (mci->ds && mci->fa)
350 /* Storage degradation */ 346 /* Storage degradation */
351 s390_handle_damage("received storage degradation machine " 347 s390_handle_damage();
352 "check.");
353 if (mci->cp) { 348 if (mci->cp) {
354 /* Channel report word pending */ 349 /* Channel report word pending */
355 mcck->channel_report = 1; 350 mcck->channel_report = 1;