Messages in this thread Patch in this message |  | | | From | Hans Rosenfeld <> | | Subject | [PATCH 1/9] x86, xsave: warn on #NM exceptions caused by the kernel | | Date | Tue, 29 Nov 2011 13:41:20 +0100 |
| |
The kernel code handling the FPU states should handle the TS bit in such a way that #NM exceptions cannot happen inside the kernel. Any other kernel code using FPU features should use kernel_fpu_begin() and kernel_fpu_end(), which handles the TS bit and disallows preemption.
So if a #NM exception ever comes from kernel mode, it would indicate a serious bug. Trapping this with WARN_ON_ONCE() could prove helpful in finding and eliminating such bugs.
Signed-off-by: Hans Rosenfeld <hans.rosenfeld@amd.com> --- arch/x86/kernel/traps.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index 6913369..953d5f6 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@ -777,6 +777,8 @@ EXPORT_SYMBOL_GPL(math_state_restore); dotraplinkage void __kprobes do_device_not_available(struct pt_regs *regs, long error_code) { + WARN_ON_ONCE(!user_mode_vm(regs)); + #ifdef CONFIG_MATH_EMULATION if (read_cr0() & X86_CR0_EM) { struct math_emu_info info = { }; -- 1.7.5.4
|  |