Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Aug 1999 13:03:26 -0500
From:      Jonathan Lemon <jlemon@americantv.com>
To:        Mike Smith <mike@smith.net.au>
Cc:        Maxim Sobolev <sobomax@altavista.net>, current@FreeBSD.ORG
Subject:   Re: APM related panic
Message-ID:  <19990803130326.56771@right.PCS>
In-Reply-To: <199908031657.JAA03722@dingo.cdrom.com>; from Mike Smith on Aug 08, 1999 at 09:57:10AM -0700
References:  <19990803105845.19595@right.PCS> <199908031657.JAA03722@dingo.cdrom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 08, 1999 at 09:57:10AM -0700, Mike Smith wrote:
> > > > Fatal trap 9: general protection fault while in kernel mode
> > > > instruction pointer = 0x48:0x8034
> > > > stack pointer         = 0x10:0xc0279e98
> > > > frame pointer         = 0x10:0x67890000
> > > > code segment  = base 0xc00f0000, limit 0xffff, type 0x1b
> > > >    = DPL 0, pres 1, def32 1, gran 0
> > > > processor eflags = interrupt enabled, resume, IOPL = 0
> > > 
> > > Why is IOPL zero?  I've also noted that making a bios16 call also 
> > > results in IOPL being zero (I have more that I want to take up with you 
> > > on that at some stage, since it's got me stumped, but one thing at a 
> > > time).
> > 
> > The IOPL should be zero, in order to virtualize interrupts.  If it's
> > more than zero, the BIOS code can turn off interrupts, which isn't
> > something we want to do.
> 
> Ok.  I'm presuming then that we have a tss in place that allows I/O 
> operations?  That was my major concern...

Nevermind, I was thinking of vm86 mode.  In vm86 mode, the IOPL doesn't
have anything to do with I/O, and we use the I/O permission bitmaps.
There isn't an I/O bitmap for the kernel (only user processes), so the
kernel isn't able to make vm86 I/O calls at this point.  This could be 
fixed, but I haven't seen the need for it yet.

However, this is 16-bit protected mode, which (other than the addressing
size) is exactly the same as 32-bit kernel mode.  Thus the IOPL doesn't
really matter, since all the bios selectors are set up with kernel privs
(in ring 0).
--
Jonathan


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990803130326.56771>