summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@fedoraproject.org>2014-04-25 08:12:19 -0400
committerJosh Boyer <jwboyer@fedoraproject.org>2014-04-25 08:12:25 -0400
commitf9bc831cd3e37ce7ef524fcaa045da301b486cc1 (patch)
tree1faff1e2f19d6fcb3d878c69c59a1399af21990c
parent1003f8c87011875db615a92a3f45d84faf42270c (diff)
downloadkernel-f9bc831cd3e37ce7ef524fcaa045da301b486cc1.tar.gz
kernel-f9bc831cd3e37ce7ef524fcaa045da301b486cc1.tar.xz
kernel-f9bc831cd3e37ce7ef524fcaa045da301b486cc1.zip
Fix ACPI issue preventing boot on AMI firmware (rhbz 1090746)
-rw-r--r--ACPICA-Tables-Fix-bad-pointer-issue-in-acpi_tb_parse_root_table.patch67
-rw-r--r--kernel.spec9
2 files changed, 76 insertions, 0 deletions
diff --git a/ACPICA-Tables-Fix-bad-pointer-issue-in-acpi_tb_parse_root_table.patch b/ACPICA-Tables-Fix-bad-pointer-issue-in-acpi_tb_parse_root_table.patch
new file mode 100644
index 000000000..73dfc5aef
--- /dev/null
+++ b/ACPICA-Tables-Fix-bad-pointer-issue-in-acpi_tb_parse_root_table.patch
@@ -0,0 +1,67 @@
+Bugzilla: 1090746
+Upstream-status: Queued for 3.15 and CC'd to stable
+
+From 2bb09843fc720389082ce7834b2716254bdf6c2d Mon Sep 17 00:00:00 2001
+Message-Id: <2bb09843fc720389082ce7834b2716254bdf6c2d.1397794898.git.lv.zheng@intel.com>
+From: Lv Zheng <lv.zheng@intel.com>
+Date: Fri, 18 Apr 2014 12:21:34 +0800
+Subject: [PATCH] ACPICA: Tables: Fix a bad pointer issue in
+ acpi_tb_parse_root_table().
+
+The following is a linuxizing generation of the ACPICA commit to back ports
+Linux XSDT validation mechanism to ACPICA:
+ Commit: 671cc68dc61f029d44b43a681356078e02d8dab8
+ Subject: ACPICA: Back port and refine validation of the XSDT root table.
+It triggers a regression that a pointer is still used after unmapping.
+
+This patch fixes this issue. Lv Zheng.
+
+Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=73911
+Buglink: https://bugs.archlinux.org/task/39811
+Signed-off-by: Lv Zheng <lv.zheng@intel.com>
+Reported-and-tested-by: Bruce Chiarelli <mano155@gmail.com>
+Reported-and-tested-by: Spyros Stathopoulos <spystath@gmail.com>
+Cc: <stable@vger.kernel.org> # 3.14.x: 671cc68: ACPICA: Back port and refine validation of the XSDT root table.
+---
+ drivers/acpi/acpica/tbutils.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
+index 6412d3c..7285871 100644
+--- a/drivers/acpi/acpica/tbutils.c
++++ b/drivers/acpi/acpica/tbutils.c
+@@ -461,6 +461,7 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
+ u32 table_count;
+ struct acpi_table_header *table;
+ acpi_physical_address address;
++ acpi_physical_address rsdt_address;
+ u32 length;
+ u8 *table_entry;
+ acpi_status status;
+@@ -488,11 +489,13 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
+ * as per the ACPI specification.
+ */
+ address = (acpi_physical_address) rsdp->xsdt_physical_address;
++ rsdt_address = (acpi_physical_address) rsdp->rsdt_physical_address;
+ table_entry_size = ACPI_XSDT_ENTRY_SIZE;
+ } else {
+ /* Root table is an RSDT (32-bit physical addresses) */
+
+ address = (acpi_physical_address) rsdp->rsdt_physical_address;
++ rsdt_address = address;
+ table_entry_size = ACPI_RSDT_ENTRY_SIZE;
+ }
+
+@@ -515,8 +518,7 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
+
+ /* Fall back to the RSDT */
+
+- address =
+- (acpi_physical_address) rsdp->rsdt_physical_address;
++ address = rsdt_address;
+ table_entry_size = ACPI_RSDT_ENTRY_SIZE;
+ }
+ }
+--
+1.7.10
+
diff --git a/kernel.spec b/kernel.spec
index 43121ac79..26a453bed 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -641,6 +641,9 @@ Patch25064: 0001-HID-rmi-do-not-handle-touchscreens-through-hid-rmi.patch
#rhbz 1089689
Patch25065: 0001-synaptics-Add-min-max-quirk-for-ThinkPad-Edge-E431.patch
+#rhbz 1090746
+Patch25067: ACPICA-Tables-Fix-bad-pointer-issue-in-acpi_tb_parse_root_table.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -1290,6 +1293,9 @@ ApplyPatch disable-libdw-unwind-on-non-x86.patch
#rhbz 1089689
ApplyPatch 0001-synaptics-Add-min-max-quirk-for-ThinkPad-Edge-E431.patch
+#rhbz 1090746
+ApplyPatch ACPICA-Tables-Fix-bad-pointer-issue-in-acpi_tb_parse_root_table.patch
+
# END OF PATCH APPLICATIONS
%endif
@@ -2069,6 +2075,9 @@ fi
# ||----w |
# || ||
%changelog
+* Fri Apr 25 2014 Josh Boyer <jwboyer@fedoraproject.org>
+- Fix ACPI issue preventing boot on AMI firmware (rhbz 1090746)
+
* Fri Apr 25 2014 Hans de Goede <hdegoede@redhat.com>
- Add synaptics min-max quirk for ThinkPad Edge E431 (rhbz#1089689)