diff options
author | Robert Richter <robert.richter@amd.com> | 2010-10-25 10:03:39 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-10-25 12:59:43 -0400 |
commit | eb48c9cb2053e7bb5f7f8f0371cb578a0d439450 (patch) | |
tree | 2dd0e6cc9cb5503c6f81a512578ad2ed169cd46e /arch/x86 | |
parent | 0a17941e71f089b128514f7b5b486e20072ca7dc (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.c | 15 | ||||
-rw-r--r-- | arch/x86/oprofile/op_model_amd.c | 1 |
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 | ||