Messages in this thread | | | Date | Mon, 18 Aug 2003 23:14:04 -0500 | From | Matt Mackall <> | Subject | Re: Debug: sleeping function called from invalid context |
| |
On Mon, Aug 18, 2003 at 08:35:13PM -0700, Andrew Morton wrote: > "Randy.Dunlap" <rddunlap@osdl.org> wrote: > > > > Debug: sleeping function called with interrupts disabled at > > include/asm/uaccess.h:473 > > OK, now my vague understanding of what's going on is that the app has > chosen to disable local interupts (via iopl()) and has taken a vm86 trap.
Are you suggesting that whatever's calling sys_vm86 has disabled interrupts beforehand? I don't see why that's necessary at all. The vm86 fault handler is called via do_general_protection in any case and as such is in_interrupt() by definition. And a vm86 general protection fault can be caused by any of cli, sti, pushf, popf, intx, or iret. In fact, typical usage of vm86 mode is to setup a call to a 16-bit software interrupt handler and return via fault on the iret.
I'm increasingly convinced it's actually broken.
-- Matt Mackall : http://www.selenic.com : of or relating to the moon - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |