lkml.org 
[lkml]   [2009]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[patch] x86, pat: fix free_memtype() for legacy 1MB range
commit 0e95c190cf1b4adbf1fc67decff3f2bb20158ba8 in tip tree
is n't complete, as we left out adding similar logic to free_memtype().

Appended is the delta patch against tip.

thanks,
suresh
---

[patch] x86, pat: fix free_memtype() for legacy 1MB range

Starting this commit:

> commit 0e95c190cf1b4adbf1fc67decff3f2bb20158ba8
> Author: Suresh Siddha <suresh.b.siddha@intel.com>
> Date: Fri Jan 9 14:35:20 2009 -0800
>
> x86, pat: fix reserve_memtype() for legacy 1MB range

Attribute requests with in this 1MB region are tracked in reserve_memtype()
using linear linked list (and don't bother if the range is RAM or non-RAM or
mixed).

free_memtype() also needs to follow similar logic.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: stable@kernel.org
---

diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index ec8cd49..3be3990 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -446,11 +446,19 @@ int free_memtype(u64 start, u64 end)
if (is_ISA_range(start, end - 1))
return 0;

- is_range_ram = pagerange_is_ram(start, end);
- if (is_range_ram == 1)
- return free_ram_pages_type(start, end);
- else if (is_range_ram < 0)
- return -EINVAL;
+ /*
+ * For legacy reasons, some parts of the physical address range in the
+ * legacy 1MB region is treated as non-RAM (even when listed as RAM in
+ * the e820 tables). So we will track the memory attributes of this
+ * legacy 1MB region using the linear memtype_list always.
+ */
+ if (end >= ISA_END_ADDRESS) {
+ is_range_ram = pagerange_is_ram(start, end);
+ if (is_range_ram == 1)
+ return free_ram_pages_type(start, end);
+ else if (is_range_ram < 0)
+ return -EINVAL;
+ }

spin_lock(&memtype_lock);
list_for_each_entry(entry, &memtype_list, nd) {

\
 
 \ /
  Last update: 2009-01-14 19:51    [W:0.032 / U:0.708 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site