aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/uncached.c
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2005-09-08 12:39:59 -0700
committerTony Luck <tony.luck@intel.com>2005-09-08 12:39:59 -0700
commitd8c97d5f3aa348272df2ccb4e224b1cf9a1eb6d7 (patch)
treecb71557f43084027559762f58e51f2df5d5e5c46 /arch/ia64/kernel/uncached.c
parent4706df3d3c42af802597d82c8b1542c3d52eab23 (diff)
downloadkernel_samsung_smdk4412-d8c97d5f3aa348272df2ccb4e224b1cf9a1eb6d7.zip
kernel_samsung_smdk4412-d8c97d5f3aa348272df2ccb4e224b1cf9a1eb6d7.tar.gz
kernel_samsung_smdk4412-d8c97d5f3aa348272df2ccb4e224b1cf9a1eb6d7.tar.bz2
[IA64] simplified efi memory map parsing
New version leaves the original memory map unmodified. Also saves any granule trimmings for use by the uncached memory allocator. Inspired by Khalid Aziz (various traces of his patch still remain). Fixes to uncached_build_memmap() and sn2 testing by Martin Hicks. Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/uncached.c')
-rw-r--r--arch/ia64/kernel/uncached.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/arch/ia64/kernel/uncached.c b/arch/ia64/kernel/uncached.c
index 4e9d06c..c6d4044 100644
--- a/arch/ia64/kernel/uncached.c
+++ b/arch/ia64/kernel/uncached.c
@@ -205,23 +205,18 @@ EXPORT_SYMBOL(uncached_free_page);
static int __init
uncached_build_memmap(unsigned long start, unsigned long end, void *arg)
{
- long length;
- unsigned long vstart, vend;
+ long length = end - start;
int node;
- length = end - start;
- vstart = start + __IA64_UNCACHED_OFFSET;
- vend = end + __IA64_UNCACHED_OFFSET;
-
dprintk(KERN_ERR "uncached_build_memmap(%lx %lx)\n", start, end);
- memset((char *)vstart, 0, length);
+ memset((char *)start, 0, length);
- node = paddr_to_nid(start);
+ node = paddr_to_nid(start - __IA64_UNCACHED_OFFSET);
- for (; vstart < vend ; vstart += PAGE_SIZE) {
- dprintk(KERN_INFO "sticking %lx into the pool!\n", vstart);
- gen_pool_free(uncached_pool[node], vstart, PAGE_SIZE);
+ for (; start < end ; start += PAGE_SIZE) {
+ dprintk(KERN_INFO "sticking %lx into the pool!\n", start);
+ gen_pool_free(uncached_pool[node], start, PAGE_SIZE);
}
return 0;