arch/i386/kernel/traps.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+)

diff -puN arch/i386/kernel/traps.c~print-build-options-on-oops arch/i386/kernel/traps.c
--- 25/arch/i386/kernel/traps.c~print-build-options-on-oops	2004-01-01 13:46:53.000000000 -0800
+++ 25-akpm/arch/i386/kernel/traps.c	2004-01-01 13:46:53.000000000 -0800
@@ -291,12 +291,27 @@ spinlock_t die_lock = SPIN_LOCK_UNLOCKED
 void die(const char * str, struct pt_regs * regs, long err)
 {
 	static int die_counter;
+	int nl = 0;
 
 	console_verbose();
 	spin_lock_irq(&die_lock);
 	bust_spinlocks(1);
 	handle_BUG(regs);
 	printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter);
+#ifdef CONFIG_PREEMPT
+	printk("PREEMPT ");
+	nl = 1;
+#endif
+#ifdef CONFIG_SMP
+	printk("SMP ");
+	nl = 1;
+#endif
+#ifdef CONFIG_DEBUG_PAGEALLOC
+	printk("DEBUG_PAGEALLOC");
+	nl = 1;
+#endif
+	if (nl)
+		printk("\n");
 #ifdef CONFIG_KGDB
 	/* This is about the only place we want to go to kgdb even if in
 	 * user mode.  But we must go in via a trap so within kgdb we will

_