aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/Kconfig4
-rw-r--r--arch/x86/kernel/e820.c4
-rw-r--r--arch/x86/mm/ioremap.c6
3 files changed, 10 insertions, 4 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 7ccb6e60e60c..bd3c2c53873e 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -935,13 +935,15 @@ config HIGHMEM
935config X86_PAE 935config X86_PAE
936 bool "PAE (Physical Address Extension) Support" 936 bool "PAE (Physical Address Extension) Support"
937 depends on X86_32 && !HIGHMEM4G 937 depends on X86_32 && !HIGHMEM4G
938 select RESOURCES_64BIT
939 help 938 help
940 PAE is required for NX support, and furthermore enables 939 PAE is required for NX support, and furthermore enables
941 larger swapspace support for non-overcommit purposes. It 940 larger swapspace support for non-overcommit purposes. It
942 has the cost of more pagetable lookup overhead, and also 941 has the cost of more pagetable lookup overhead, and also
943 consumes more pagetable space per process. 942 consumes more pagetable space per process.
944 943
944config ARCH_PHYS_ADDR_T_64BIT
945 def_bool X86_64 || X86_PAE
946
945# Common NUMA Features 947# Common NUMA Features
946config NUMA 948config NUMA
947 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" 949 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 78e642feac30..ce97bf3bed12 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -1282,12 +1282,10 @@ void __init e820_reserve_resources(void)
1282 e820_res = res; 1282 e820_res = res;
1283 for (i = 0; i < e820.nr_map; i++) { 1283 for (i = 0; i < e820.nr_map; i++) {
1284 end = e820.map[i].addr + e820.map[i].size - 1; 1284 end = e820.map[i].addr + e820.map[i].size - 1;
1285#ifndef CONFIG_RESOURCES_64BIT 1285 if (end != (resource_size_t)end) {
1286 if (end > 0x100000000ULL) {
1287 res++; 1286 res++;
1288 continue; 1287 continue;
1289 } 1288 }
1290#endif
1291 res->name = e820_type_to_string(e820.map[i].type); 1289 res->name = e820_type_to_string(e820.map[i].type);
1292 res->start = e820.map[i].addr; 1290 res->start = e820.map[i].addr;
1293 res->end = end; 1291 res->end = end;
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index e4c43ec71b29..ae71e11eb3e5 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -220,6 +220,12 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
220 return (__force void __iomem *)phys_to_virt(phys_addr); 220 return (__force void __iomem *)phys_to_virt(phys_addr);
221 221
222 /* 222 /*
223 * Check if the request spans more than any BAR in the iomem resource
224 * tree.
225 */
226 WARN_ON(iomem_map_sanity_check(phys_addr, size));
227
228 /*
223 * Don't allow anybody to remap normal RAM that we're using.. 229 * Don't allow anybody to remap normal RAM that we're using..
224 */ 230 */
225 for (pfn = phys_addr >> PAGE_SHIFT; 231 for (pfn = phys_addr >> PAGE_SHIFT;