From c6320367941b46ba972b6f3fb527f43686a8e8f9 Mon Sep 17 00:00:00 2001 From: Jason Tang Date: Fri, 15 Apr 2016 00:11:30 -0400 Subject: [PATCH] x86,irq: Update software interrupts to use irq descriptor vector Commit a782a7e46bb50822fabfeb7271605762a59c86df ("x86/irq: Store irq descriptor in vector array") changed the x86 interrupt vector array to hold irq_desc instead of interrupt numbers. This commit changes trigger_irq() function to search via irq_desc instead of interrupt numbers. Signed-off-by: Jason Tang --- arch/x86/kernel/irq.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c index d693008..2b06d14 100644 --- a/arch/x86/kernel/irq.c +++ b/arch/x86/kernel/irq.c @@ -267,9 +267,11 @@ __visible unsigned int __irq_entry do_IRQ(struct pt_regs *regs) */ int trigger_irq(unsigned irq) { unsigned vector; + struct irq_desc *desc; for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS; vector++) { - if (irq == __this_cpu_read(vector_irq[vector])) - goto found; + desc = __this_cpu_read(vector_irq[vector]); + if (!IS_ERR_OR_NULL(desc) && irq == irq_desc_get_irq(desc)) + goto found; } return -1; found: -- 1.9.1