aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorRobert Richter <robert.richter@amd.com>2010-10-25 10:03:39 -0400
committerIngo Molnar <mingo@elte.hu>2010-10-25 12:59:43 -0400
commiteb48c9cb2053e7bb5f7f8f0371cb578a0d439450 (patch)
tree2dd0e6cc9cb5503c6f81a512578ad2ed169cd46e /arch/x86
parent0a17941e71f089b128514f7b5b486e20072ca7dc (diff)
apic, amd: Make firmware bug messages more meaningful
This improves error messages in case the BIOS was setting up wrong LVT offsets. Signed-off-by: Robert Richter <robert.richter@amd.com> Acked-by: Borislav Petkov <borislav.petkov@amd.com> LKML-Reference: <1288015419-29543-6-git-send-email-robert.richter@amd.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/apic/apic.c15
-rw-r--r--arch/x86/oprofile/op_model_amd.c1
2 files changed, 9 insertions, 7 deletions
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 850657d1b0ed..cb1304856a5c 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -433,17 +433,18 @@ int setup_APIC_eilvt(u8 offset, u8 vector, u8 msg_type, u8 mask)
433 reserved = reserve_eilvt_offset(offset, new); 433 reserved = reserve_eilvt_offset(offset, new);
434 434
435 if (reserved != new) { 435 if (reserved != new) {
436 pr_err(FW_BUG "cpu %d, try to setup vector 0x%x, but " 436 pr_err(FW_BUG "cpu %d, try to use APIC%lX (LVT offset %d) for "
437 "vector 0x%x was already reserved by another core, " 437 "vector 0x%x, but the register is already in use for "
438 "APIC%lX=0x%x\n", 438 "vector 0x%x on another cpu\n",
439 smp_processor_id(), new, reserved, reg, old); 439 smp_processor_id(), reg, offset, new, reserved);
440 return -EINVAL; 440 return -EINVAL;
441 } 441 }
442 442
443 if (!eilvt_entry_is_changeable(old, new)) { 443 if (!eilvt_entry_is_changeable(old, new)) {
444 pr_err(FW_BUG "cpu %d, try to setup vector 0x%x but " 444 pr_err(FW_BUG "cpu %d, try to use APIC%lX (LVT offset %d) for "
445 "register already in use, APIC%lX=0x%x\n", 445 "vector 0x%x, but the register is already in use for "
446 smp_processor_id(), new, reg, old); 446 "vector 0x%x on this cpu\n",
447 smp_processor_id(), reg, offset, new, old);
447 return -EBUSY; 448 return -EBUSY;
448 } 449 }
449 450
diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c
index 42fb46f83883..08de2545bc68 100644
--- a/arch/x86/oprofile/op_model_amd.c
+++ b/arch/x86/oprofile/op_model_amd.c
@@ -566,6 +566,7 @@ static int force_ibs_eilvt_setup(void)
566 ret = setup_ibs_ctl(i); 566 ret = setup_ibs_ctl(i);
567 if (ret) 567 if (ret)
568 return ret; 568 return ret;
569 pr_err(FW_BUG "using offset %d for IBS interrupts\n", i);
569 return 0; 570 return 0;
570 } 571 }
571 572