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

From: Malcolm Beattie (mbeattie@sable.ox.ac.uk)
Date: Tue Sep 12 2000 - 04:29:09 EST


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?").

--Malcolm

-- 
Malcolm Beattie <mbeattie@sable.ox.ac.uk>
Unix Systems Programmer
Oxford University Computing Services
-
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