From: Chris Wright Date: Sat, 2 Dec 2006 20:59:58 +0000 (-0800) Subject: ACPI fix from Len Brown for 2.6.19 X-Git-Tag: v2.6.19.1~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8796e83df542198b2fb6ef8ab817f6613ed1921c;p=thirdparty%2Fkernel%2Fstable-queue.git ACPI fix from Len Brown for 2.6.19 --- diff --git a/queue-2.6.19/revert-acpi-sci-interrupt-source-override.patch b/queue-2.6.19/revert-acpi-sci-interrupt-source-override.patch new file mode 100644 index 00000000000..1639dcff141 --- /dev/null +++ b/queue-2.6.19/revert-acpi-sci-interrupt-source-override.patch @@ -0,0 +1,67 @@ +From 7bdd21cef9e5dbc3d3a718c55bb3d0da024644da Mon Sep 17 00:00:00 2001 +From: Len Brown +To: Linus Torvalds , stable@kernel.org +Cc: Andrew Morton , linux-acpi@vger.kernel.org +Date: Sat, 2 Dec 2006 02:27:46 -0500 +Subject: Revert "ACPI: SCI interrupt source override" + +This reverts commit 281ea49b0c294649a6de47a6f8fbe5611137726b, +which broke ACPI Interrupt source overrides that move +the SCI from one IRQ in PIC mode to another in IOAPIC mode. + +If the SCI shared an interrupt line with another device, +this would result in a "irq 18: nobody cared" type failure. + +http://bugzilla.kernel.org/show_bug.cgi?id=7601 + +Signed-off-by: Len Brown +Signed-off-by: Chris Wright +--- + arch/i386/kernel/acpi/boot.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- linux-2.6.19.orig/arch/i386/kernel/acpi/boot.c ++++ linux-2.6.19/arch/i386/kernel/acpi/boot.c +@@ -333,7 +333,7 @@ acpi_parse_ioapic(acpi_table_entry_heade + /* + * Parse Interrupt Source Override for the ACPI SCI + */ +-static void acpi_sci_ioapic_setup(u32 bus_irq, u32 gsi, u16 polarity, u16 trigger) ++static void acpi_sci_ioapic_setup(u32 gsi, u16 polarity, u16 trigger) + { + if (trigger == 0) /* compatible SCI trigger is level */ + trigger = 3; +@@ -353,13 +353,13 @@ static void acpi_sci_ioapic_setup(u32 bu + * If GSI is < 16, this will update its flags, + * else it will create a new mp_irqs[] entry. + */ +- mp_override_legacy_irq(bus_irq, polarity, trigger, gsi); ++ mp_override_legacy_irq(gsi, polarity, trigger, gsi); + + /* + * stash over-ride to indicate we've been here + * and for later update of acpi_fadt + */ +- acpi_sci_override_gsi = bus_irq; ++ acpi_sci_override_gsi = gsi; + return; + } + +@@ -377,7 +377,7 @@ acpi_parse_int_src_ovr(acpi_table_entry_ + acpi_table_print_madt_entry(header); + + if (intsrc->bus_irq == acpi_fadt.sci_int) { +- acpi_sci_ioapic_setup(intsrc->bus_irq, intsrc->global_irq, ++ acpi_sci_ioapic_setup(intsrc->global_irq, + intsrc->flags.polarity, + intsrc->flags.trigger); + return 0; +@@ -880,7 +880,7 @@ static int __init acpi_parse_madt_ioapic + * pretend we got one so we can set the SCI flags. + */ + if (!acpi_sci_override_gsi) +- acpi_sci_ioapic_setup(acpi_fadt.sci_int, acpi_fadt.sci_int, 0, 0); ++ acpi_sci_ioapic_setup(acpi_fadt.sci_int, 0, 0); + + /* Fill in identity legacy mapings where no override */ + mp_config_acpi_legacy_irqs(); diff --git a/queue-2.6.19/series b/queue-2.6.19/series index b89043c238e..c4b93c4e79a 100644 --- a/queue-2.6.19/series +++ b/queue-2.6.19/series @@ -6,3 +6,4 @@ ebtables-deal-with-the-worst-case-behaviour-in-loop-checks.patch ebtables-prevent-wraparounds-in-checks-for-entry-components-sizes.patch net_sched-policer-restore-compatibility-with-old-iproute-binaries.patch cryptoloop-select-crypto_cbc.patch +revert-acpi-sci-interrupt-source-override.patch