idt.c (636a7598f65938e1dbacafec74c2e3acdc66bd4d) | idt.c (dc20b2d526539344d7175a2a83221337302596b8) |
---|---|
1/* 2 * Interrupt descriptor table related code 3 * 4 * This file is licensed under the GPL V2 5 */ 6#include <linux/interrupt.h> 7 8#include <asm/traps.h> --- 272 unchanged lines hidden (view full) --- 281} 282#endif 283 284/** 285 * idt_setup_apic_and_irq_gates - Setup APIC/SMP and normal interrupt gates 286 */ 287void __init idt_setup_apic_and_irq_gates(void) 288{ | 1/* 2 * Interrupt descriptor table related code 3 * 4 * This file is licensed under the GPL V2 5 */ 6#include <linux/interrupt.h> 7 8#include <asm/traps.h> --- 272 unchanged lines hidden (view full) --- 281} 282#endif 283 284/** 285 * idt_setup_apic_and_irq_gates - Setup APIC/SMP and normal interrupt gates 286 */ 287void __init idt_setup_apic_and_irq_gates(void) 288{ |
289 int i = FIRST_EXTERNAL_VECTOR; 290 void *entry; 291 |
|
289 idt_setup_from_table(idt_table, apic_idts, ARRAY_SIZE(apic_idts)); | 292 idt_setup_from_table(idt_table, apic_idts, ARRAY_SIZE(apic_idts)); |
293 294 for_each_clear_bit_from(i, used_vectors, FIRST_SYSTEM_VECTOR) { 295 entry = irq_entries_start + 8 * (i - FIRST_EXTERNAL_VECTOR); 296 set_intr_gate(i, entry); 297 } 298 299 for_each_clear_bit_from(i, used_vectors, NR_VECTORS) { 300#ifdef CONFIG_X86_LOCAL_APIC 301 set_bit(i, used_vectors); 302 set_intr_gate(i, spurious_interrupt); 303#else 304 entry = irq_entries_start + 8 * (i - FIRST_EXTERNAL_VECTOR); 305 set_intr_gate(i, entry); 306#endif 307 } |
|
290} 291 292/** 293 * idt_setup_early_handler - Initializes the idt table with early handlers 294 */ 295void __init idt_setup_early_handler(void) 296{ 297 int i; --- 20 unchanged lines hidden --- | 308} 309 310/** 311 * idt_setup_early_handler - Initializes the idt table with early handlers 312 */ 313void __init idt_setup_early_handler(void) 314{ 315 int i; --- 20 unchanged lines hidden --- |