diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-08-19 23:50:32 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-10-16 10:52:53 -0400 |
commit | 7a959cff725872ce9c3a534f10724d7bb2cb3c4a (patch) | |
tree | 8624645b19e3f4404ba7ca071dd52d72f870aff6 | |
parent | 497c9a195db918d3f035e8cb3021e5d4d035516e (diff) |
x86: add debug info for 32bit sparse_irq
so could figure out bugs where we get an interrupt, but vector_irq is
not initialized yet.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/kernel/io_apic_32.c | 8 | ||||
-rw-r--r-- | arch/x86/kernel/io_apic_64.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/irq_32.c | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/arch/x86/kernel/io_apic_32.c b/arch/x86/kernel/io_apic_32.c index ea33d3c74970..3001924bdd36 100644 --- a/arch/x86/kernel/io_apic_32.c +++ b/arch/x86/kernel/io_apic_32.c | |||
@@ -1114,8 +1114,12 @@ next: | |||
1114 | cfg->move_in_progress = 1; | 1114 | cfg->move_in_progress = 1; |
1115 | cfg->old_domain = cfg->domain; | 1115 | cfg->old_domain = cfg->domain; |
1116 | } | 1116 | } |
1117 | for_each_cpu_mask_nr(new_cpu, new_mask) | 1117 | printk(KERN_DEBUG "assign_irq_vector: irq %d vector %#x cpu ", irq, vector); |
1118 | per_cpu(vector_irq, new_cpu)[vector] = irq; | 1118 | for_each_cpu_mask_nr(new_cpu, new_mask) { |
1119 | per_cpu(vector_irq, new_cpu)[vector] = irq; | ||
1120 | printk(KERN_CONT " %d ", new_cpu); | ||
1121 | } | ||
1122 | printk(KERN_CONT "\n"); | ||
1119 | cfg->vector = vector; | 1123 | cfg->vector = vector; |
1120 | cfg->domain = domain; | 1124 | cfg->domain = domain; |
1121 | return 0; | 1125 | return 0; |
diff --git a/arch/x86/kernel/io_apic_64.c b/arch/x86/kernel/io_apic_64.c index b0d4abc55a11..30d2e3811313 100644 --- a/arch/x86/kernel/io_apic_64.c +++ b/arch/x86/kernel/io_apic_64.c | |||
@@ -1394,6 +1394,8 @@ __apicdebuginit(void) print_IO_APIC(void) | |||
1394 | printk(KERN_DEBUG "IO APIC #%d......\n", mp_ioapics[apic].mp_apicid); | 1394 | printk(KERN_DEBUG "IO APIC #%d......\n", mp_ioapics[apic].mp_apicid); |
1395 | printk(KERN_DEBUG ".... register #00: %08X\n", reg_00.raw); | 1395 | printk(KERN_DEBUG ".... register #00: %08X\n", reg_00.raw); |
1396 | printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.bits.ID); | 1396 | printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.bits.ID); |
1397 | printk(KERN_DEBUG "....... : Delivery Type: %X\n", reg_00.bits.delivery_type); | ||
1398 | printk(KERN_DEBUG "....... : LTS : %X\n", reg_00.bits.LTS); | ||
1397 | 1399 | ||
1398 | printk(KERN_DEBUG ".... register #01: %08X\n", *(int *)®_01); | 1400 | printk(KERN_DEBUG ".... register #01: %08X\n", *(int *)®_01); |
1399 | printk(KERN_DEBUG "....... : max redirection entries: %04X\n", reg_01.bits.entries); | 1401 | printk(KERN_DEBUG "....... : max redirection entries: %04X\n", reg_01.bits.entries); |
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c index b51ffdcfa31a..cc929f2f84f1 100644 --- a/arch/x86/kernel/irq_32.c +++ b/arch/x86/kernel/irq_32.c | |||
@@ -237,8 +237,8 @@ unsigned int do_IRQ(struct pt_regs *regs) | |||
237 | 237 | ||
238 | desc = irq_to_desc(irq); | 238 | desc = irq_to_desc(irq); |
239 | if (unlikely(!desc)) { | 239 | if (unlikely(!desc)) { |
240 | printk(KERN_EMERG "%s: cannot handle IRQ %d vector %#x\n", | 240 | printk(KERN_EMERG "%s: cannot handle IRQ %d vector %#x cpu %d\n", |
241 | __func__, irq, vector); | 241 | __func__, irq, vector, smp_processor_id()); |
242 | BUG(); | 242 | BUG(); |
243 | } | 243 | } |
244 | 244 | ||