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) { _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"