]> git.baikalelectronics.ru Git - kernel.git/commit
x86_64, traps: Fix the espfix64 #DF fixup and rewrite it in C
authorAndy Lutomirski <luto@amacapital.net>
Sun, 23 Nov 2014 02:00:31 +0000 (18:00 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 23 Nov 2014 21:56:18 +0000 (13:56 -0800)
commite64c39be7cf67e7780f84d3c7ef262a21c47e6eb
treed3546c0fe44e49d283ed3d0ced3b92873f28df34
parente2c81752b41ed350c75d95149169ae9b6d5b5f6c
x86_64, traps: Fix the espfix64 #DF fixup and rewrite it in C

There's nothing special enough about the espfix64 double fault fixup to
justify writing it in assembly.  Move it to C.

This also fixes a bug: if the double fault came from an IST stack, the
old asm code would return to a partially uninitialized stack frame.

Fixes: c90463791744a6ed50aaa92019e37baa8698bc5f
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/kernel/entry_64.S
arch/x86/kernel/traps.c