summaryrefslogtreecommitdiffstats
path: root/sys/compat/x86bios
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2010-03-25 15:56:04 +0000
committerjkim <jkim@FreeBSD.org>2010-03-25 15:56:04 +0000
commit49ca5d49ba1fb8b0550024f816e6e6bb7f9e3a0a (patch)
treebd44974dd2643aa199fd9c452b9430d91c5ac197 /sys/compat/x86bios
parentac2318460ca6c2ea9f6cbff07bad22a5f502234d (diff)
downloadFreeBSD-src-49ca5d49ba1fb8b0550024f816e6e6bb7f9e3a0a.zip
FreeBSD-src-49ca5d49ba1fb8b0550024f816e6e6bb7f9e3a0a.tar.gz
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
Diffstat (limited to 'sys/compat/x86bios')
-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 af352af..e90d80b 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);
}
OpenPOWER on IntegriCloud