Re: Problem in sys_vm86 or QuakeII on 2.2.6?

Frederick W Reimer (Fred.Reimer@bellsouth.net)
Sun, 25 Apr 1999 18:06:31 -0400


Menion wrote:

> Have you gotten it working at all? Because this is also the standard
> symptom of a video misconfiguration. In fact, I have never seen quake2
> bomb on this when it was _not_ svgalib. Have you tried running the X
> version?

Um, Yes, as I said in my original post ("BTW, it works under software rendering
(+set vid_ref softx)."). I guess it >could< be a "video misconfiguration" but
I'm not using the video config for svgalib, only the keyboard and mouse. My X
configuration is fine, working great at 1600x1200 (and 640x480, 800x600, etc).
It's just when I try to run it using the 3Dfx libraries.

What, specifically, are you referring to when you say "I have never seen quake2
bomb on THIS when it was _not_ svgalib" (my emphasis)? Is the THIS the "no
vm86_info: BAD" message?

>
> Frederick W Reimer wrote:
> >
> > Hello,
> >
> > Word of warning - I'm not a kernel hacker, so forgive me if I give
> > incomplete information.
> >
> > Seems that QuakeII bombs on syscall 166 (sys_vm86) on my 2.2.6 based SMP
> > system (2 PII-350's).
> >
> > Here's the last strace line:
> > SYS_166(0x402f20f8, 0, 0x402f2288, 0x1150, 0x1000 <unfinished ...>
> > +++ killed by SIGSEGV +++
> >
> > with the kernel output of:
> > no vm86_info: BAD
> >
> > Looking at the definition for this syscall -
> > asmlinkage int sys_vm86(unsigned long subfunction, struct
> > vm86plus_struct * v86);
> >
> > it looks like quake2 is passing garbage to the function? Shouldn't it
> > have only two arguments (the subfunction and a pointer to a
> > vm86plus_struct structure)?
> >
> > It's actually bombing in save_v86_state, which gets called only from
> > return_to_32_bit, which is called from a few places. But, it only
> > prints this info if vm86_info is blank. Tracing the sys_vm86 call, it
> > looks like vm86_info is set during a VM86_ENTER or VM86_ENTER_NO_BYPASS
> > before save_v86_state could possibly get called.
> >
> > Was sys_vm86old once syscall 166 and sys_vm86 replaced it (Doesn't look
> > like it from the numbering of the two syscalls)? Can't think of any
> > other possibility other than quake2 is just passing the kernel garbage.
> > Is there any way I can trace it to give more info (like checking the
> > address that is passed as a pointer or something)? I'll try it on an
> > earlier kernel if needed.
> >
> > BTW, it works under software rendering (+set vid_ref softx). It only
> > bombs when I'm trying to use my Voodoo2 board. I have the 2.0 version
> > of the 3dfx.o module compiled under 2.2.6 installed.
> >
> > Also, it doesn't work with the ad1816 sound driver as a module (havn't
> > tried compiled in yet). It core dumps during a memset when initializing
> > the sound. Don't know if this is ad1816 specific, or just a generic
> > problem with quake2...
> >
> > Sorry for the long fractured post. It's late.
> >
> > Fred Reimer

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/