summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2014-04-05 14:24:29 +0000
committerkib <kib@FreeBSD.org>2014-04-05 14:24:29 +0000
commit660fbf80db59d8c5f61b096f8f93fbf4a0b1bccf (patch)
tree258c013915d755d039a51345e60747916b796ae6 /sys/amd64
parent0e5fcf594cf83d89f3eebe4b08ce24c79f47cf2a (diff)
downloadFreeBSD-src-660fbf80db59d8c5f61b096f8f93fbf4a0b1bccf.zip
FreeBSD-src-660fbf80db59d8c5f61b096f8f93fbf4a0b1bccf.tar.gz
MFC r263912:
Clear the kernel grab of the FPU state on fork.
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/vm_machdep.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c
index 1e3d8f5..12f4978 100644
--- a/sys/amd64/amd64/vm_machdep.c
+++ b/sys/amd64/amd64/vm_machdep.c
@@ -446,7 +446,8 @@ cpu_set_upcall(struct thread *td, struct thread *td0)
* values here.
*/
bcopy(td0->td_pcb, pcb2, sizeof(*pcb2));
- clear_pcb_flags(pcb2, PCB_FPUINITDONE | PCB_USERFPUINITDONE);
+ clear_pcb_flags(pcb2, PCB_FPUINITDONE | PCB_USERFPUINITDONE |
+ PCB_KERNFPU);
pcb2->pcb_save = get_pcb_user_save_pcb(pcb2);
bcopy(get_pcb_user_save_td(td0), pcb2->pcb_save,
cpu_max_ext_state_size);
OpenPOWER on IntegriCloud