svn commit: r211148 - head/sys/compat/x86bios
Jung-uk Kim
jkim at FreeBSD.org
Tue Aug 10 15:22:48 UTC 2010
Author: jkim
Date: Tue Aug 10 15:22:48 2010
New Revision: 211148
URL: http://svn.freebsd.org/changeset/base/211148
Log:
Place spinlock_enter() and spinlock_exit() just around X86EMU calls.
Modified:
head/sys/compat/x86bios/x86bios.c
Modified: head/sys/compat/x86bios/x86bios.c
==============================================================================
--- head/sys/compat/x86bios/x86bios.c Tue Aug 10 14:44:20 2010 (r211147)
+++ head/sys/compat/x86bios/x86bios.c Tue Aug 10 15:22:48 2010 (r211148)
@@ -599,12 +599,12 @@ x86bios_call(struct x86regs *regs, uint1
X86BIOS_TRACE(Calling 0x%06x, (seg << 4) + off, regs);
mtx_lock(&x86bios_lock);
- spinlock_enter();
memcpy(&x86bios_emu.x86, regs, sizeof(*regs));
x86bios_fault = 0;
+ spinlock_enter();
x86emu_exec_call(&x86bios_emu, seg, off);
- memcpy(regs, &x86bios_emu.x86, sizeof(*regs));
spinlock_exit();
+ memcpy(regs, &x86bios_emu.x86, sizeof(*regs));
mtx_unlock(&x86bios_lock);
if (x86bios_trace_call) {
@@ -637,12 +637,12 @@ x86bios_intr(struct x86regs *regs, int i
X86BIOS_TRACE(Calling INT 0x%02x, intno, regs);
mtx_lock(&x86bios_lock);
- spinlock_enter();
memcpy(&x86bios_emu.x86, regs, sizeof(*regs));
x86bios_fault = 0;
+ spinlock_enter();
x86emu_exec_intr(&x86bios_emu, intno);
- memcpy(regs, &x86bios_emu.x86, sizeof(*regs));
spinlock_exit();
+ memcpy(regs, &x86bios_emu.x86, sizeof(*regs));
mtx_unlock(&x86bios_lock);
if (x86bios_trace_int) {
More information about the svn-src-all
mailing list