Date: Sun, 16 Mar 1997 21:34:48 -0800 From: Sean Eric Fagan <sef@Kithrup.COM> To: jlemon@americantv.com Cc: current@freebsd.org Subject: Re: Gotcha in moving to post 4.4 lite2 merge ``world''. Message-ID: <199703170534.VAA10736@kithrup.com> In-Reply-To: <19970316223415.24505.kithrup.freebsd.current@right.pcs> References: <199703161933.LAA09028@kithrup.com>; from Sean Eric Fagan on Mar 03, 1997 at 11:33:52AM -0800
next in thread | previous in thread | raw e-mail | index | archive | help
>What's happening (in the test case I'm working on) is that the vm86() >process is going into an infinite loop, and somehow or the other, an AST >interrupt is not being generated. > >Interrupts are enabled, the kernel is getting called, the AST flag in >_ipending is set, but when _doreti gets hit, it just jumps back into vm86 >mode instead of calling trap(). Right now, I can recover by writing >a garbage %ds on the frame, and forcing a call into trap() via a doreti fault. msmith and I saw this early on, when we were using return_from_vm86() instead of the normal code path. For a while, I was hacking around it by calling userret() manually -- however, that shouldn't be an issue now, since you (jlemon) fixed the kernel stack layout, allowing us to simply return via normal channels. I've never been able to follow the low-level code through; Bruce is the only one I know of who knows it as well as I want to. Obviously, this note doesn't have a suggestion or a solution. :( Sean.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703170534.VAA10736>