diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/lguest/boot.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c index ba5c05e97f10..960a8d9c049c 100644 --- a/arch/x86/lguest/boot.c +++ b/arch/x86/lguest/boot.c | |||
@@ -594,19 +594,21 @@ static void __init lguest_init_IRQ(void) | |||
594 | /* Some systems map "vectors" to interrupts weirdly. Lguest has | 594 | /* Some systems map "vectors" to interrupts weirdly. Lguest has |
595 | * a straightforward 1 to 1 mapping, so force that here. */ | 595 | * a straightforward 1 to 1 mapping, so force that here. */ |
596 | __get_cpu_var(vector_irq)[vector] = i; | 596 | __get_cpu_var(vector_irq)[vector] = i; |
597 | if (vector != SYSCALL_VECTOR) { | 597 | if (vector != SYSCALL_VECTOR) |
598 | set_intr_gate(vector, | 598 | set_intr_gate(vector, interrupt[i]); |
599 | interrupt[vector-FIRST_EXTERNAL_VECTOR]); | ||
600 | set_irq_chip_and_handler_name(i, &lguest_irq_controller, | ||
601 | handle_level_irq, | ||
602 | "level"); | ||
603 | } | ||
604 | } | 599 | } |
605 | /* This call is required to set up for 4k stacks, where we have | 600 | /* This call is required to set up for 4k stacks, where we have |
606 | * separate stacks for hard and soft interrupts. */ | 601 | * separate stacks for hard and soft interrupts. */ |
607 | irq_ctx_init(smp_processor_id()); | 602 | irq_ctx_init(smp_processor_id()); |
608 | } | 603 | } |
609 | 604 | ||
605 | void lguest_setup_irq(unsigned int irq) | ||
606 | { | ||
607 | irq_to_desc_alloc_cpu(irq, 0); | ||
608 | set_irq_chip_and_handler_name(irq, &lguest_irq_controller, | ||
609 | handle_level_irq, "level"); | ||
610 | } | ||
611 | |||
610 | /* | 612 | /* |
611 | * Time. | 613 | * Time. |
612 | * | 614 | * |