Bizarre bug...
Matthew Dillon
dillon at apollo.backplane.com
Mon Apr 26 16:20:45 PDT 2004
The system timebase is based on 8254 Timer 2. It's set to a
full 65536 repeating cycle. My guess is that the BIOS call
used to set the graphics mode is screwing up Timer 2 somehow.
You could try adding a call to timer_restore() to your kernel.
This isn't really a fix, but it might narrow the issue down a
bit. Try it and lets see what happens.
-Matt
Index: i386/vm86.c
===================================================================
RCS file: /cvs/src/sys/i386/i386/vm86.c,v
retrieving revision 1.9
diff -u -r1.9 vm86.c
--- i386/vm86.c 3 Nov 2003 22:50:11 -0000 1.9
+++ i386/vm86.c 26 Apr 2004 23:18:33 -0000
@@ -582,6 +582,7 @@
vmf->vmf_trapno = intnum;
error = vm86_bioscall(vmf);
+ timer_restore();
crit_exit();
return(error);
}
@@ -614,6 +615,7 @@
vmf->vmf_trapno = intnum;
retval = vm86_bioscall(vmf);
+ timer_restore();
for (i = 0; i < vmc->npages; i++) {
entry = vmc->pmap[i].pte_num;
More information about the Bugs
mailing list