diff options
-rw-r--r-- | arch/x86/mm/extable.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c index 79ae939970d3..fcd06f7526de 100644 --- a/arch/x86/mm/extable.c +++ b/arch/x86/mm/extable.c | |||
@@ -135,7 +135,12 @@ void __init early_fixup_exception(struct pt_regs *regs, int trapnr) | |||
135 | if (early_recursion_flag > 2) | 135 | if (early_recursion_flag > 2) |
136 | goto halt_loop; | 136 | goto halt_loop; |
137 | 137 | ||
138 | if (regs->cs != __KERNEL_CS) | 138 | /* |
139 | * Old CPUs leave the high bits of CS on the stack | ||
140 | * undefined. I'm not sure which CPUs do this, but at least | ||
141 | * the 486 DX works this way. | ||
142 | */ | ||
143 | if ((regs->cs & 0xFFFF) != __KERNEL_CS) | ||
139 | goto fail; | 144 | goto fail; |
140 | 145 | ||
141 | /* | 146 | /* |