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 ---