mce.c (7290f3b3d3e66b54720f23079ffc60e0b7bbb0cc) | mce.c (9ca766f9891d23743b4e1a7b1cafdc63723cd6a7) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Machine check exception handling. 4 * 5 * Copyright 2013 IBM Corporation 6 * Author: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> 7 */ 8 --- 311 unchanged lines hidden (view full) --- 320 machine_check_print_event_info(evt, false, false); 321 __this_cpu_dec(mce_queue_count); 322 } 323} 324 325void machine_check_print_event_info(struct machine_check_event *evt, 326 bool user_mode, bool in_guest) 327{ | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Machine check exception handling. 4 * 5 * Copyright 2013 IBM Corporation 6 * Author: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> 7 */ 8 --- 311 unchanged lines hidden (view full) --- 320 machine_check_print_event_info(evt, false, false); 321 __this_cpu_dec(mce_queue_count); 322 } 323} 324 325void machine_check_print_event_info(struct machine_check_event *evt, 326 bool user_mode, bool in_guest) 327{ |
328 const char *level, *sevstr, *subtype, *err_type; | 328 const char *level, *sevstr, *subtype, *err_type, *initiator; |
329 uint64_t ea = 0, pa = 0; 330 int n = 0; 331 char dar_str[50]; 332 char pa_str[50]; 333 static const char *mc_ue_types[] = { 334 "Indeterminate", 335 "Instruction fetch", 336 "Page table walk ifetch", --- 68 unchanged lines hidden (view full) --- 405 break; 406 case MCE_SEV_FATAL: 407 default: 408 level = KERN_ERR; 409 sevstr = "Fatal"; 410 break; 411 } 412 | 329 uint64_t ea = 0, pa = 0; 330 int n = 0; 331 char dar_str[50]; 332 char pa_str[50]; 333 static const char *mc_ue_types[] = { 334 "Indeterminate", 335 "Instruction fetch", 336 "Page table walk ifetch", --- 68 unchanged lines hidden (view full) --- 405 break; 406 case MCE_SEV_FATAL: 407 default: 408 level = KERN_ERR; 409 sevstr = "Fatal"; 410 break; 411 } 412 |
413 switch(evt->initiator) { 414 case MCE_INITIATOR_CPU: 415 initiator = "CPU"; 416 break; 417 case MCE_INITIATOR_PCI: 418 initiator = "PCI"; 419 break; 420 case MCE_INITIATOR_ISA: 421 initiator = "ISA"; 422 break; 423 case MCE_INITIATOR_MEMORY: 424 initiator = "Memory"; 425 break; 426 case MCE_INITIATOR_POWERMGM: 427 initiator = "Power Management"; 428 break; 429 case MCE_INITIATOR_UNKNOWN: 430 default: 431 initiator = "Unknown"; 432 break; 433 } 434 |
|
413 switch (evt->error_type) { 414 case MCE_ERROR_TYPE_UE: 415 err_type = "UE"; 416 subtype = evt->u.ue_error.ue_error_type < 417 ARRAY_SIZE(mc_ue_types) ? 418 mc_ue_types[evt->u.ue_error.ue_error_type] 419 : "Unknown"; 420 if (evt->u.ue_error.effective_address_provided) --- 50 unchanged lines hidden (view full) --- 471 err_type = "Link"; 472 subtype = evt->u.link_error.link_error_type < 473 ARRAY_SIZE(mc_link_types) ? 474 mc_link_types[evt->u.link_error.link_error_type] 475 : "Unknown"; 476 if (evt->u.link_error.effective_address_provided) 477 ea = evt->u.link_error.effective_address; 478 break; | 435 switch (evt->error_type) { 436 case MCE_ERROR_TYPE_UE: 437 err_type = "UE"; 438 subtype = evt->u.ue_error.ue_error_type < 439 ARRAY_SIZE(mc_ue_types) ? 440 mc_ue_types[evt->u.ue_error.ue_error_type] 441 : "Unknown"; 442 if (evt->u.ue_error.effective_address_provided) --- 50 unchanged lines hidden (view full) --- 493 err_type = "Link"; 494 subtype = evt->u.link_error.link_error_type < 495 ARRAY_SIZE(mc_link_types) ? 496 mc_link_types[evt->u.link_error.link_error_type] 497 : "Unknown"; 498 if (evt->u.link_error.effective_address_provided) 499 ea = evt->u.link_error.effective_address; 500 break; |
501 case MCE_ERROR_TYPE_DCACHE: 502 err_type = "D-Cache"; 503 subtype = "Unknown"; 504 break; 505 case MCE_ERROR_TYPE_ICACHE: 506 err_type = "I-Cache"; 507 subtype = "Unknown"; 508 break; |
|
479 default: 480 case MCE_ERROR_TYPE_UNKNOWN: 481 err_type = "Unknown"; 482 subtype = ""; 483 break; 484 } 485 486 dar_str[0] = pa_str[0] = '\0'; --- 16 unchanged lines hidden (view full) --- 503 printk("%sMCE: CPU%d: PID: %d Comm: %s %sNIP: [%016llx]%s\n", 504 level, evt->cpu, current->pid, current->comm, 505 in_guest ? "Guest " : "", evt->srr0, pa_str); 506 } else { 507 printk("%sMCE: CPU%d: NIP: [%016llx] %pS%s\n", 508 level, evt->cpu, evt->srr0, (void *)evt->srr0, pa_str); 509 } 510 | 509 default: 510 case MCE_ERROR_TYPE_UNKNOWN: 511 err_type = "Unknown"; 512 subtype = ""; 513 break; 514 } 515 516 dar_str[0] = pa_str[0] = '\0'; --- 16 unchanged lines hidden (view full) --- 533 printk("%sMCE: CPU%d: PID: %d Comm: %s %sNIP: [%016llx]%s\n", 534 level, evt->cpu, current->pid, current->comm, 535 in_guest ? "Guest " : "", evt->srr0, pa_str); 536 } else { 537 printk("%sMCE: CPU%d: NIP: [%016llx] %pS%s\n", 538 level, evt->cpu, evt->srr0, (void *)evt->srr0, pa_str); 539 } 540 |
541 printk("%sMCE: CPU%d: Initiator %s\n", level, evt->cpu, initiator); 542 |
|
511 subtype = evt->error_class < ARRAY_SIZE(mc_error_class) ? 512 mc_error_class[evt->error_class] : "Unknown"; 513 printk("%sMCE: CPU%d: %s\n", level, evt->cpu, subtype); 514 515#ifdef CONFIG_PPC_BOOK3S_64 516 /* Display faulty slb contents for SLB errors. */ 517 if (evt->error_type == MCE_ERROR_TYPE_SLB) 518 slb_dump_contents(local_paca->mce_faulty_slbs); --- 150 unchanged lines hidden --- | 543 subtype = evt->error_class < ARRAY_SIZE(mc_error_class) ? 544 mc_error_class[evt->error_class] : "Unknown"; 545 printk("%sMCE: CPU%d: %s\n", level, evt->cpu, subtype); 546 547#ifdef CONFIG_PPC_BOOK3S_64 548 /* Display faulty slb contents for SLB errors. */ 549 if (evt->error_type == MCE_ERROR_TYPE_SLB) 550 slb_dump_contents(local_paca->mce_faulty_slbs); --- 150 unchanged lines hidden --- |