aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2008-10-31 12:24:27 -0400
committerRusty Russell <rusty@rustcorp.com.au>2008-10-30 20:24:28 -0400
commit526e5ab200ce483dcdf146806f4936bd58daa800 (patch)
treeb865e04546882a8a2daf5341160cb52048cf70dc /arch
parentad5173ff8a387191dbacf889becb92c59aba5d59 (diff)
lguest: fix irq vectors.
do_IRQ: cannot handle IRQ -1 vector 0x20 cpu 0 ------------[ cut here ]------------ kernel BUG at arch/x86/kernel/irq_32.c:219! We're not ISA: we have a 1:1 mapping from vectors to irqs. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/lguest/boot.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index 4e22fa08d629..a5d8e1ace1cf 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -586,6 +586,9 @@ static void __init lguest_init_IRQ(void)
586 586
587 for (i = 0; i < LGUEST_IRQS; i++) { 587 for (i = 0; i < LGUEST_IRQS; i++) {
588 int vector = FIRST_EXTERNAL_VECTOR + i; 588 int vector = FIRST_EXTERNAL_VECTOR + i;
589 /* Some systems map "vectors" to interrupts weirdly. Lguest has
590 * a straightforward 1 to 1 mapping, so force that here. */
591 __get_cpu_var(vector_irq)[vector] = i;
589 if (vector != SYSCALL_VECTOR) { 592 if (vector != SYSCALL_VECTOR) {
590 set_intr_gate(vector, interrupt[vector]); 593 set_intr_gate(vector, interrupt[vector]);
591 set_irq_chip_and_handler_name(i, &lguest_irq_controller, 594 set_irq_chip_and_handler_name(i, &lguest_irq_controller,