patch-2.4.0-test2 linux/arch/ia64/kernel/irq.c
Next file: linux/arch/ia64/kernel/irq_ia64.c
Previous file: linux/arch/ia64/kernel/ia64_ksyms.c
Back to the patch index
Back to the overall index
- Lines: 39
- Date:
Thu Jun 22 07:09:44 2000
- Orig file:
v2.4.0-test1/linux/arch/ia64/kernel/irq.c
- Orig date:
Wed Apr 26 16:34:06 2000
diff -u --recursive --new-file v2.4.0-test1/linux/arch/ia64/kernel/irq.c linux/arch/ia64/kernel/irq.c
@@ -201,10 +201,14 @@
printk(" %d",local_bh_count(i));
printk(" ]\nStack dumps:");
-#ifdef __ia64__
- printk(" ]\nStack dumps: <unimplemented on IA-64---please fix me>");
- /* for now we don't have stack dumping support... */
-#elif __i386__
+#if defined(__ia64__)
+ /*
+ * We can't unwind the stack of another CPU without access to
+ * the registers of that CPU. And sending an IPI when we're
+ * in a potentially wedged state doesn't sound like a smart
+ * idea.
+ */
+#elif defined(__i386__)
for(i=0;i< smp_num_cpus;i++) {
unsigned long esp;
if(i==cpu)
@@ -227,9 +231,7 @@
You lose...
#endif
printk("\nCPU %d:",cpu);
-#ifdef __i386__
show_stack(NULL);
-#endif
printk("\n");
}
@@ -582,7 +584,8 @@
if (!(status & (IRQ_DISABLED | IRQ_INPROGRESS))) {
action = desc->action;
status &= ~IRQ_PENDING; /* we commit to handling */
- status |= IRQ_INPROGRESS; /* we are handling it */
+ if (!(status & IRQ_PER_CPU))
+ status |= IRQ_INPROGRESS; /* we are handling it */
}
desc->status = status;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)