From: Chuck Ebbert Date: Fri, 10 Aug 2007 20:31:11 +0000 (+0200) Subject: i386: Fix double fault handler X-Git-Tag: v2.6.23-rc3~14 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3dab307e527f2a9bbb4f9d00240374bb93d1945f;p=pandora-kernel.git i386: Fix double fault handler The new percpu code has apparently broken the doublefault handler when CONFIG_DEBUG_SPINLOCK is set. Doublefault is handled by a hardware task, making the check SPIN_BUG_ON(lock->owner == current, lock, "recursion"); fault because it uses the FS register to access the percpu data for current, and that register is zero in the new TSS. (The trace I saw was on 2.6.20 where it was GS, but it looks like this will still happen with FS on 2.6.22.) Initializing FS in the doublefault_tss should fix it. AK: Also fix broken ptr_ok() and turn printks into KERN_EMERG AK: And add a PANIC prefix to make clear the system will hang AK: (e.g. x86-64 will recover) Signed-off-by: Chuck Ebbert Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds --- Reading git-diff-tree failed