From owner-freebsd-current Mon Mar 17 03:52:37 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id DAA06657 for current-outgoing; Mon, 17 Mar 1997 03:52:37 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id DAA06650 for ; Mon, 17 Mar 1997 03:52:34 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.3/8.6.9) id WAA09824; Mon, 17 Mar 1997 22:46:15 +1100 Date: Mon, 17 Mar 1997 22:46:15 +1100 From: Bruce Evans Message-Id: <199703171146.WAA09824@godzilla.zeta.org.au> To: jlemon@americantv.com, sef@Kithrup.COM Subject: Re: Gotcha in moving to post 4.4 lite2 merge ``world''. Cc: current@FreeBSD.org Sender: owner-current@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk >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. This means that the new cpl still masks ASTs (it should be 0 for return to user mode) or maybe that the phantom AST test isn't working because the stack frame is unusual. Bruce