aboutsummaryrefslogtreecommitdiff
path: root/sys/compat
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2010-03-25 15:56:04 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2010-03-25 15:56:04 +0000
commitad51361a2ca6c2932e50c867f8be945dd5504ed8 (patch)
treebd44974dd2643aa199fd9c452b9430d91c5ac197 /sys/compat
parenta0ea661f5e3a47074e54104f403d8356a5946a8f (diff)
downloadsrc-ad51361a2ca6c2932e50c867f8be945dd5504ed8.tar.gz
src-ad51361a2ca6c2932e50c867f8be945dd5504ed8.zip
Fix stupid typos. Some VESA BIOSes directly call BIOS interrupt handlers
within the VBE interrupt handler. Unfortunately it was causing real mode page faults because we were fetching instructions from bogus addresses. Pass me the pointyhat, please. PR: kern/144654 MFC after: 3 days
Notes
Notes: svn path=/head/; revision=205647
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/x86bios/x86bios.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/compat/x86bios/x86bios.c b/sys/compat/x86bios/x86bios.c
index af352af3a2fa..e90d80bac57c 100644
--- a/sys/compat/x86bios/x86bios.c
+++ b/sys/compat/x86bios/x86bios.c
@@ -307,8 +307,8 @@ x86bios_emu_get_intr(struct x86emu *emu, int intno)
sp[2] = htole16(emu->x86.R_FLG);
iv = x86bios_get_intr(intno);
- emu->x86.R_IP = iv & 0x000f;
- emu->x86.R_CS = (iv >> 12) & 0xffff;
+ emu->x86.R_IP = iv & 0xffff;
+ emu->x86.R_CS = (iv >> 16) & 0xffff;
emu->x86.R_FLG &= ~(F_IF | F_TF);
}