summaryrefslogtreecommitdiff
path: root/kernels/linux-libre-xen/0015-fix-xsdt-validation.patch
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2014-05-12 16:32:55 -0300
committerNicolás Reynolds <fauno@endefensadelsl.org>2014-05-12 16:32:55 -0300
commite3acfdf0b0b71c3180b756bdc7ff4a8090bb5e00 (patch)
treeda2f71ca3469aea362df4b9885b01bcc068bfc91 /kernels/linux-libre-xen/0015-fix-xsdt-validation.patch
parent6abc75d5f0c4d5c8302715a7da59cc02d22fbe36 (diff)
parent8d0f4ac4cbf56fc5c5cadb5ba09c35e3674a886b (diff)
downloadabslibre-e3acfdf0b0b71c3180b756bdc7ff4a8090bb5e00.tar.gz
abslibre-e3acfdf0b0b71c3180b756bdc7ff4a8090bb5e00.tar.bz2
abslibre-e3acfdf0b0b71c3180b756bdc7ff4a8090bb5e00.zip
Merge branch 'master' of vparabola:abslibre
Conflicts: pcr/tomb/PKGBUILD
Diffstat (limited to 'kernels/linux-libre-xen/0015-fix-xsdt-validation.patch')
-rw-r--r--kernels/linux-libre-xen/0015-fix-xsdt-validation.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/kernels/linux-libre-xen/0015-fix-xsdt-validation.patch b/kernels/linux-libre-xen/0015-fix-xsdt-validation.patch
new file mode 100644
index 000000000..82dd2be25
--- /dev/null
+++ b/kernels/linux-libre-xen/0015-fix-xsdt-validation.patch
@@ -0,0 +1,42 @@
+@@ -, +, @@
+ acpi_tb_parse_root_table().
+ Commit: 671cc68dc61f029d44b43a681356078e02d8dab8
+ Subject: ACPICA: Back port and refine validation of the XSDT root table.
+---
+ drivers/acpi/acpica/tbutils.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+--- a/drivers/acpi/acpica/tbutils.c
++++ a/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;
+ }
+ }
+