|
@@ -37,7 +37,7 @@ struct map_range {
|
|
|
|
|
|
static int page_size_mask;
|
|
static int page_size_mask;
|
|
|
|
|
|
-void probe_page_size_mask(void)
|
|
|
|
|
|
+static void __init probe_page_size_mask(void)
|
|
{
|
|
{
|
|
#if !defined(CONFIG_DEBUG_PAGEALLOC) && !defined(CONFIG_KMEMCHECK)
|
|
#if !defined(CONFIG_DEBUG_PAGEALLOC) && !defined(CONFIG_KMEMCHECK)
|
|
/*
|
|
/*
|
|
@@ -315,6 +315,23 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
|
|
return ret >> PAGE_SHIFT;
|
|
return ret >> PAGE_SHIFT;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void __init init_mem_mapping(void)
|
|
|
|
+{
|
|
|
|
+ probe_page_size_mask();
|
|
|
|
+
|
|
|
|
+ /* max_pfn_mapped is updated here */
|
|
|
|
+ max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT);
|
|
|
|
+ max_pfn_mapped = max_low_pfn_mapped;
|
|
|
|
+
|
|
|
|
+#ifdef CONFIG_X86_64
|
|
|
|
+ if (max_pfn > max_low_pfn) {
|
|
|
|
+ max_pfn_mapped = init_memory_mapping(1UL<<32,
|
|
|
|
+ max_pfn<<PAGE_SHIFT);
|
|
|
|
+ /* can we preseve max_low_pfn ?*/
|
|
|
|
+ max_low_pfn = max_pfn;
|
|
|
|
+ }
|
|
|
|
+#endif
|
|
|
|
+}
|
|
|
|
|
|
/*
|
|
/*
|
|
* devmem_is_allowed() checks to see if /dev/mem access to a certain address
|
|
* devmem_is_allowed() checks to see if /dev/mem access to a certain address
|