Re: Handle kernel page faults using task gate

From: eliad lubovsky
Date: Thu Jun 30 2005 - 01:54:49 EST


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@xxxxxxx> wrote:
>
> > * eliad lubovsky <eliadl@xxxxxxx> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/