diff options
| author | Robert Richter <robert.richter@amd.com> | 2010-10-25 16:03:39 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2010-10-25 18:59:43 +0200 | 
| commit | eb48c9cb2053e7bb5f7f8f0371cb578a0d439450 (patch) | |
| tree | 2dd0e6cc9cb5503c6f81a512578ad2ed169cd46e | |
| 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>
| -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)  	reserved = reserve_eilvt_offset(offset, new);  	if (reserved != new) { -		pr_err(FW_BUG "cpu %d, try to setup vector 0x%x, but " -		       "vector 0x%x was already reserved by another core, " -		       "APIC%lX=0x%x\n", -		       smp_processor_id(), new, reserved, reg, old); +		pr_err(FW_BUG "cpu %d, try to use APIC%lX (LVT offset %d) for " +		       "vector 0x%x, but the register is already in use for " +		       "vector 0x%x on another cpu\n", +		       smp_processor_id(), reg, offset, new, reserved);  		return -EINVAL;  	}  	if (!eilvt_entry_is_changeable(old, new)) { -		pr_err(FW_BUG "cpu %d, try to setup vector 0x%x but " -		       "register already in use, APIC%lX=0x%x\n", -		       smp_processor_id(), new, reg, old); +		pr_err(FW_BUG "cpu %d, try to use APIC%lX (LVT offset %d) for " +		       "vector 0x%x, but the register is already in use for " +		       "vector 0x%x on this cpu\n", +		       smp_processor_id(), reg, offset, new, old);  		return -EBUSY;  	} 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)  		ret = setup_ibs_ctl(i);  		if (ret)  			return ret; +		pr_err(FW_BUG "using offset %d for IBS interrupts\n", i);  		return 0;  	} | 
