Module Name: src Committed By: riastradh Date: Mon Jul 6 18:30:48 UTC 2020
Modified Files: src/sys/arch/x86/x86: fpu.c Log Message: Restore the lwp's fpu state, not zeros, and leave with fpu enabled. We need to clear the fpu state anyway because it is likely to contain secrets at this point. Previously we set it to zeros, and then issued stts to disable the fpu in order to detect the mistake of further use of the fpu in kernel. But there must be some path I haven't identified yet that doesn't do fpu_handle_deferred, leading to fpudna panics. In any case, there's no benefit to restoring the fpu state twice (once with zeros and once with the real data). The downside is, although this avoids spurious fpudna traps, using fpu_kern_enter in a softint has the side effect that -- until the next userland context switch triggering stts -- we no longer detect misuse of fpu in the kernel in that lwp. This will serve for now, but we should find another way to issue clts/stts judiciously to detect such misuse. May improve the continued symptoms of https://mail-index.netbsd.org/current-users/2020/07/02/msg039051.html although may not fix everything. To generate a diff of this commit: cvs rdiff -u -r1.66 -r1.67 src/sys/arch/x86/x86/fpu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.