diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c
index 4ced4285163bd2b3d9f929593452384313e02ba9..86fa7e47f301a15184a8318b0e313711f1e8b4b4 100644
--- a/arch/i386/kernel/traps.c
+++ b/arch/i386/kernel/traps.c
@@ -197,6 +197,8 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
 				if (UNW_SP(&info) >= PAGE_OFFSET) {
 					ops->warning(data, "Leftover inexact backtrace:\n");
 					stack = (void *)UNW_SP(&info);
+					if (!stack)
+						return;
 				} else
 					ops->warning(data, "Full inexact backtrace again:\n");
 			} else if (call_trace >= 1)