diff options
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/lguest/boot.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c index 4e0c26559395..2392a7a171c2 100644 --- a/arch/x86/lguest/boot.c +++ b/arch/x86/lguest/boot.c | |||
@@ -628,13 +628,12 @@ static void __init lguest_init_IRQ(void) | |||
628 | { | 628 | { |
629 | unsigned int i; | 629 | unsigned int i; |
630 | 630 | ||
631 | for (i = 0; i < LGUEST_IRQS; i++) { | 631 | for (i = FIRST_EXTERNAL_VECTOR; i < NR_VECTORS; i++) { |
632 | int vector = FIRST_EXTERNAL_VECTOR + i; | ||
633 | /* Some systems map "vectors" to interrupts weirdly. Lguest has | 632 | /* Some systems map "vectors" to interrupts weirdly. Lguest has |
634 | * a straightforward 1 to 1 mapping, so force that here. */ | 633 | * a straightforward 1 to 1 mapping, so force that here. */ |
635 | __get_cpu_var(vector_irq)[vector] = i; | 634 | __get_cpu_var(vector_irq)[i] = i - FIRST_EXTERNAL_VECTOR; |
636 | if (vector != SYSCALL_VECTOR) | 635 | if (i != SYSCALL_VECTOR) |
637 | set_intr_gate(vector, interrupt[i]); | 636 | set_intr_gate(i, interrupt[i - FIRST_EXTERNAL_VECTOR]); |
638 | } | 637 | } |
639 | /* This call is required to set up for 4k stacks, where we have | 638 | /* This call is required to set up for 4k stacks, where we have |
640 | * separate stacks for hard and soft interrupts. */ | 639 | * separate stacks for hard and soft interrupts. */ |