From bdbf2db5b26f089ada50d1d9f7954d0550b505a8 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Fri, 14 Jan 2011 21:09:01 +0000 Subject: [PATCH] Remove redundant, bogus, and even harmful uses of setting TS bit in CR0. It is done from fpstate_drop() when it is really necessary. Reviewed by: kib MFC after: 1 week --- sys/amd64/ia32/ia32_signal.c | 1 - sys/amd64/linux32/linux32_sysvec.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/amd64/ia32/ia32_signal.c b/sys/amd64/ia32/ia32_signal.c index 91884d22eaf..e5f82fe0253 100644 --- a/sys/amd64/ia32/ia32_signal.c +++ b/sys/amd64/ia32/ia32_signal.c @@ -741,7 +741,6 @@ ia32_setregs(struct thread *td, struct image_params *imgp, u_long stack) regs->tf_gs = _ugssel; regs->tf_flags = TF_HASSEGS; - load_cr0(rcr0() | CR0_MP | CR0_TS); fpstate_drop(td); /* Return via doreti so that we can change to a different %cs */ diff --git a/sys/amd64/linux32/linux32_sysvec.c b/sys/amd64/linux32/linux32_sysvec.c index 674a286e1e3..112cdeb47ba 100644 --- a/sys/amd64/linux32/linux32_sysvec.c +++ b/sys/amd64/linux32/linux32_sysvec.c @@ -865,7 +865,7 @@ exec_linux_setregs(struct thread *td, struct image_params *imgp, u_long stack) regs->tf_flags = TF_HASSEGS; regs->tf_cs = _ucode32sel; regs->tf_rbx = imgp->ps_strings; - load_cr0(rcr0() | CR0_MP | CR0_TS); + fpstate_drop(td); /* Do full restore on return so that we can change to a different %cs */