3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Vikas C Sajjan <vikas.cha.saj...@hpe.com>

commit 4ee2ec1b122599f7b10c849fa7915cebb37b7edb upstream.

The new function mp_register_ioapic_irq() is a subset of the code in
mp_override_legacy_irq().

Replace the code duplication by invoking mp_register_ioapic_irq() from
mp_override_legacy_irq().

Signed-off-by: Vikas C Sajjan <vikas.cha.saj...@hpe.com>
Signed-off-by: Thomas Gleixner <t...@linutronix.de>
Reviewed-by: Thomas Gleixner <t...@linutronix.de>
Acked-by: Rafael J. Wysocki <rafael.j.wyso...@intel.com>
Cc: linux...@vger.kernel.org
Cc: kkama...@gmail.com
Cc: linux-a...@vger.kernel.org
Link: 
https://lkml.kernel.org/r/1510848825-21965-3-git-send-email-vikas.cha.saj...@hpe.com
Cc: Jean Delvare <jdelv...@suse.de>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 arch/x86/kernel/acpi/boot.c |   27 +++++----------------------
 1 file changed, 5 insertions(+), 22 deletions(-)

--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -308,13 +308,12 @@ acpi_parse_lapic_nmi(struct acpi_subtabl
 #ifdef CONFIG_X86_IO_APIC
 #define MP_ISA_BUS             0
 
+static int __init mp_register_ioapic_irq(u8 bus_irq, u8 polarity,
+                                               u8 trigger, u32 gsi);
+
 static void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger,
                                          u32 gsi)
 {
-       int ioapic;
-       int pin;
-       struct mpc_intsrc mp_irq;
-
        /*
         * Check bus_irq boundary.
         */
@@ -324,14 +323,6 @@ static void __init mp_override_legacy_ir
        }
 
        /*
-        * Convert 'gsi' to 'ioapic.pin'.
-        */
-       ioapic = mp_find_ioapic(gsi);
-       if (ioapic < 0)
-               return;
-       pin = mp_find_ioapic_pin(ioapic, gsi);
-
-       /*
         * TBD: This check is for faulty timer entries, where the override
         *      erroneously sets the trigger to level, resulting in a HUGE
         *      increase of timer interrupts!
@@ -339,16 +330,8 @@ static void __init mp_override_legacy_ir
        if ((bus_irq == 0) && (trigger == 3))
                trigger = 1;
 
-       mp_irq.type = MP_INTSRC;
-       mp_irq.irqtype = mp_INT;
-       mp_irq.irqflag = (trigger << 2) | polarity;
-       mp_irq.srcbus = MP_ISA_BUS;
-       mp_irq.srcbusirq = bus_irq;     /* IRQ */
-       mp_irq.dstapic = mpc_ioapic_id(ioapic); /* APIC ID */
-       mp_irq.dstirq = pin;    /* INTIN# */
-
-       mp_save_irq(&mp_irq);
-
+       if (mp_register_ioapic_irq(bus_irq, polarity, trigger, gsi) < 0)
+               return;
        /*
         * Reset default identity mapping if gsi is also an legacy IRQ,
         * otherwise there will be more than one entry with the same GSI


Reply via email to