aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYinghai Lu <yhlu.kernel@gmail.com>2008-08-19 23:50:32 -0400
committerIngo Molnar <mingo@elte.hu>2008-10-16 10:52:53 -0400
commit7a959cff725872ce9c3a534f10724d7bb2cb3c4a (patch)
tree8624645b19e3f4404ba7ca071dd52d72f870aff6
parent497c9a195db918d3f035e8cb3021e5d4d035516e (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.c8
-rw-r--r--arch/x86/kernel/io_apic_64.c2
-rw-r--r--arch/x86/kernel/irq_32.c4
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 *)&reg_01); 1400 printk(KERN_DEBUG ".... register #01: %08X\n", *(int *)&reg_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