x86: move _set_gate and its users to a common location
This patch moves _set_gate and its users to desc.h. We can now use common code for x86_64 and i386. [ mingo@elte.hu: set_system_gate() fixes for nasty crashes. ] Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:

committed by
Ingo Molnar

parent
54cd0eac72
commit
507f90c9f9
@@ -1102,40 +1102,6 @@ asmlinkage void math_emulate(long arg)
|
||||
|
||||
#endif /* CONFIG_MATH_EMULATION */
|
||||
|
||||
/*
|
||||
* This needs to use 'idt_table' rather than 'idt', and
|
||||
* thus use the _nonmapped_ version of the IDT, as the
|
||||
* Pentium F0 0F bugfix can have resulted in the mapped
|
||||
* IDT being write-protected.
|
||||
*/
|
||||
void set_intr_gate(unsigned int n, void *addr)
|
||||
{
|
||||
_set_gate(n, DESCTYPE_INT, addr, __KERNEL_CS);
|
||||
}
|
||||
|
||||
/*
|
||||
* This routine sets up an interrupt gate at directory privilege level 3.
|
||||
*/
|
||||
static inline void set_system_intr_gate(unsigned int n, void *addr)
|
||||
{
|
||||
_set_gate(n, DESCTYPE_INT | DESCTYPE_DPL3, addr, __KERNEL_CS);
|
||||
}
|
||||
|
||||
static void __init set_trap_gate(unsigned int n, void *addr)
|
||||
{
|
||||
_set_gate(n, DESCTYPE_TRAP, addr, __KERNEL_CS);
|
||||
}
|
||||
|
||||
static void __init set_system_gate(unsigned int n, void *addr)
|
||||
{
|
||||
_set_gate(n, DESCTYPE_TRAP | DESCTYPE_DPL3, addr, __KERNEL_CS);
|
||||
}
|
||||
|
||||
static void __init set_task_gate(unsigned int n, unsigned int gdt_entry)
|
||||
{
|
||||
_set_gate(n, DESCTYPE_TASK, (void *)0, (gdt_entry<<3));
|
||||
}
|
||||
|
||||
|
||||
void __init trap_init(void)
|
||||
{
|
||||
|
Reference in New Issue
Block a user