|
@@ -136,7 +136,7 @@ void cpu_idle(void)
|
|
|
}
|
|
|
|
|
|
/* Prints also some state that isn't saved in the pt_regs */
|
|
|
-void __show_regs(struct pt_regs *regs)
|
|
|
+void __show_regs(struct pt_regs *regs, int all)
|
|
|
{
|
|
|
unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L, fs, gs, shadowgs;
|
|
|
unsigned long d0, d1, d2, d3, d6, d7;
|
|
@@ -175,6 +175,9 @@ void __show_regs(struct pt_regs *regs)
|
|
|
rdmsrl(MSR_GS_BASE, gs);
|
|
|
rdmsrl(MSR_KERNEL_GS_BASE, shadowgs);
|
|
|
|
|
|
+ if (!all)
|
|
|
+ return;
|
|
|
+
|
|
|
cr0 = read_cr0();
|
|
|
cr2 = read_cr2();
|
|
|
cr3 = read_cr3();
|
|
@@ -200,7 +203,7 @@ void __show_regs(struct pt_regs *regs)
|
|
|
void show_regs(struct pt_regs *regs)
|
|
|
{
|
|
|
printk(KERN_INFO "CPU %d:", smp_processor_id());
|
|
|
- __show_regs(regs);
|
|
|
+ __show_regs(regs, 1);
|
|
|
show_trace(NULL, regs, (void *)(regs + 1), regs->bp);
|
|
|
}
|
|
|
|