Comment 10 for bug 2065838

Revision history for this message
Mario Limonciello (superm1) wrote :

Save the below as a patch file and then apply using "patch -p1 < FILE". Build your kernel and see if it has helped.

diff --git a/drivers/acpi/acpica/exregion.c b/drivers/acpi/acpica/exregion.c
index 8907b8bf4267..ca060ec6936e 100644
--- a/drivers/acpi/acpica/exregion.c
+++ b/drivers/acpi/acpica/exregion.c
@@ -44,7 +44,6 @@ acpi_ex_system_memory_space_handler(u32 function,
  struct acpi_mem_mapping *mm = mem_info->cur_mm;
  u32 length;
  acpi_size map_length;
- acpi_size page_boundary_map_length;
 #ifdef ACPI_MISALIGNMENT_NOT_SUPPORTED
  u32 remainder;
 #endif
@@ -138,25 +137,8 @@ acpi_ex_system_memory_space_handler(u32 function,
   map_length = (acpi_size)
       ((mem_info->address + mem_info->length) - address);

- /*
- * If mapping the entire remaining portion of the region will cross
- * a page boundary, just map up to the page boundary, do not cross.
- * On some systems, crossing a page boundary while mapping regions
- * can cause warnings if the pages have different attributes
- * due to resource management.
- *
- * This has the added benefit of constraining a single mapping to
- * one page, which is similar to the original code that used a 4k
- * maximum window.
- */
- page_boundary_map_length = (acpi_size)
- (ACPI_ROUND_UP(address, ACPI_DEFAULT_PAGE_SIZE) - address);
- if (page_boundary_map_length == 0) {
- page_boundary_map_length = ACPI_DEFAULT_PAGE_SIZE;
- }
-
- if (map_length > page_boundary_map_length) {
- map_length = page_boundary_map_length;
+ if (map_length > ACPI_DEFAULT_PAGE_SIZE) {
+ map_length = ACPI_DEFAULT_PAGE_SIZE;
   }

   /* Create a new mapping starting at the address given */
--
2.34.1