Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1198454

[patch 2/7] x86/lguest: Do not setup unused irq vectors

From Thomas Gleixner <tglx@linutronix.de>
Newsgroups linux.kernel
Subject [patch 2/7] x86/lguest: Do not setup unused irq vectors
Date 2015-08-02 22:40 +0200
Message-ID <pT8d3-6tx-11@gated-at.bofh.it> (permalink)
References <pT8d3-6tx-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


No point in assigning the interrupt vectors if there is no interrupt
chip installed. Move it to lguest_setup_irq().

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Rusty Russell <rusty@rustcorp.com.au>
---
 arch/x86/lguest/boot.c |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

Index: tip/arch/x86/lguest/boot.c
===================================================================
--- tip.orig/arch/x86/lguest/boot.c
+++ tip/arch/x86/lguest/boot.c
@@ -855,17 +855,13 @@ static void lguest_disable_irq(struct pc
 
 /*
  * This sets up the Interrupt Descriptor Table (IDT) entry for each hardware
- * interrupt (except 128, which is used for system calls), and then tells the
- * Linux infrastructure that each interrupt is controlled by our level-based
- * lguest interrupt controller.
+ * interrupt (except 128, which is used for system calls).
  */
 static void __init lguest_init_IRQ(void)
 {
 	unsigned int i;
 
 	for (i = FIRST_EXTERNAL_VECTOR; i < FIRST_SYSTEM_VECTOR; i++) {
-		/* Some systems map "vectors" to interrupts weirdly.  Not us! */
-		__this_cpu_write(vector_irq[i], i - FIRST_EXTERNAL_VECTOR);
 		if (i != IA32_SYSCALL_VECTOR)
 			set_intr_gate(i, irq_entries_start +
 					8 * (i - FIRST_EXTERNAL_VECTOR));
@@ -893,8 +889,15 @@ int lguest_setup_irq(unsigned int irq)
 	if (err < 0 && err != -EEXIST)
 		return err;
 
+	/*
+	 * Tell the Linux infrastructure that the interrupt is
+	 * controlled by our level-based lguest interrupt controller.
+	 */
 	irq_set_chip_and_handler_name(irq, &lguest_irq_controller,
 				      handle_level_irq, "level");
+
+	/* Some systems map "vectors" to interrupts weirdly.  Not us! */
+	__this_cpu_write(vector_irq[FIRST_EXTERNAL_VECTOR + irq, irq);
 	return 0;
 }
 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[patch 2/7] x86/lguest: Do not setup unused irq vectors Thomas Gleixner <tglx@linutronix.de> - 2015-08-02 22:40 +0200
  Re: [patch 2/7] x86/lguest: Do not setup unused irq vectors Rusty Russell <rusty@rustcorp.com.au> - 2015-08-03 05:00 +0200
    Re: [patch 2/7] x86/lguest: Do not setup unused irq vectors Thomas Gleixner <tglx@linutronix.de> - 2015-08-03 11:50 +0200
      Re: [patch 2/7] x86/lguest: Do not setup unused irq vectors Rusty Russell <rusty@rustcorp.com.au> - 2015-08-04 06:40 +0200
        [PATCH 2/2] x86/lguest: Do not setup unused irq vectors Rusty Russell <rusty@rustcorp.com.au> - 2015-08-04 06:40 +0200
        [PATCH 1/2] x86/lguest: clean up lguest_setup_irq. Rusty Russell <rusty@rustcorp.com.au> - 2015-08-04 06:40 +0200

csiph-web