Re: Adding set_system_gate fails in arch/i386/kernel/traps.c

From: Keith Owens (kaos@ocs.com.au)
Date: Tue Sep 12 2000 - 05:25:48 EST


On Tue, 12 Sep 2000 10:29:09 +0100,
Malcolm Beattie <mbeattie@sable.ox.ac.uk> wrote:
>To initialise the system call and suchlike traps,
>arch/i386/kernel/traps.c does
>
> set_system_gate(3,&int3); /* int3-5 can be called from all */
> set_system_gate(4,&overflow);
> set_system_gate(5,&bounds);
> ...
> set_system_gate(SYSCALL_VECTOR,&system_call);
>
>However, any other ones I add (say, with vectors 0x70, 0x71, 0x84,
>0x85) vanish after the system has booted further. printk shows that
>idt_table is correctly updated immediately after the set_system_gate
>but once the system has booted the entries for my new traps have
>reverted. (printk telemetry available on request). However, once the
>system has booted, a little module which simply updates
>idt_table[MY_NEW_VECTOR] directly works fine and "sticks". Help?
>(Or, more accurately "Aaarrrgh?").

I can confirm that this sometimes occurs in 2.4.0-testx, AFAIK I have
only seen the problem in SMP kernels.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Sep 15 2000 - 21:00:17 EST