diff options
author | neel <neel@FreeBSD.org> | 2013-01-04 02:49:12 +0000 |
---|---|---|
committer | neel <neel@FreeBSD.org> | 2013-01-04 02:49:12 +0000 |
commit | fec8c768eb1c50ae42da476ee843414b7f87b8f5 (patch) | |
tree | b061447a334188615e2679f906f5cf4ce8b835be | |
parent | 01173b0b4a9b00c153489a51f2cba1b3d0cfc119 (diff) | |
download | FreeBSD-src-fec8c768eb1c50ae42da476ee843414b7f87b8f5.zip FreeBSD-src-fec8c768eb1c50ae42da476ee843414b7f87b8f5.tar.gz |
There is no need for 'start_emulating()' and 'stop_emulating()' to be defined
in <machine/cpufunc.h> so remove them from there.
Obtained from: NetApp
-rw-r--r-- | sys/amd64/include/cpufunc.h | 17 | ||||
-rw-r--r-- | sys/amd64/vmm/vmm.c | 4 |
2 files changed, 2 insertions, 19 deletions
diff --git a/sys/amd64/include/cpufunc.h b/sys/amd64/include/cpufunc.h index 7243173..881fcd2 100644 --- a/sys/amd64/include/cpufunc.h +++ b/sys/amd64/include/cpufunc.h @@ -705,23 +705,6 @@ intr_disable(void) return (rflags); } -#ifndef CR0_TS -/* Defined in <machine/specialreg.h> */ -#define CR0_TS 0x00000008 -#endif -static __inline void -start_emulating(void) -{ - __asm __volatile("smsw %%ax; orb %0,%%al; lmsw %%ax" - : : "n" (CR0_TS) : "ax"); -} - -static __inline void -stop_emulating(void) -{ - __asm __volatile("clts"); -} - static __inline void intr_restore(register_t rflags) { diff --git a/sys/amd64/vmm/vmm.c b/sys/amd64/vmm/vmm.c index eae9ccc..a4dea79 100644 --- a/sys/amd64/vmm/vmm.c +++ b/sys/amd64/vmm/vmm.c @@ -145,8 +145,8 @@ static struct vmm_ops *ops; #define VMSETCAP(vmi, vcpu, num, val) \ (ops != NULL ? (*ops->vmsetcap)(vmi, vcpu, num, val) : ENXIO) -#define fpu_start_emulating() start_emulating() -#define fpu_stop_emulating() stop_emulating() +#define fpu_start_emulating() load_cr0(rcr0() | CR0_TS) +#define fpu_stop_emulating() clts() static MALLOC_DEFINE(M_VM, "vm", "vm"); CTASSERT(VMM_MSR_NUM <= 64); /* msr_mask can keep track of up to 64 msrs */ |