![]() | |||||||||||||
Messages in this thread |
How do I clear the 'busy' bit? I set my TSS descriptor with __set_tss_desc(cpu, GDT_ENTRY_PAGE_FAULT_TSS, &pagefault_tss); Eliad On Wed, 2005-06-29 at 22:27, Ingo Molnar wrote: > * Ingo Molnar <mingo@elte.hu> wrote: > > > * eliad lubovsky <eliadl@013.net> wrote: > > > > > I am trying to handle page faults exceptions in the kernel using the > > > task gate mechanism. I succeeded to transfer the execution to my page > > > fault handler using a new TSS and updates to the GDT and IDT tables > > > (similar to the double fault mechanism in 2.6). After handling the > > > fault and allocating the physical page I use the iret instruction to > > > switch back to the previous task. The problem is that I got a double > > > fault with the same address that cause the fault (although the > > > physical page is allocated and mapped). Any clues? > > > > are you clearing the 'nested task' (NT) flag of the new TSS once you > > have switched to it? > > correction - i meant the 'busy' bit in the TSS descriptor. It's being > set by TSS-switch operations, and needs to be cleared. > > Ingo - 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/ | ||||||||||||
| Last update: 2005-06-30 06:57 [from the cache] ©2003-2008 | |||||||||||||