diff options
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/Kconfig | 4 | ||||
-rw-r--r-- | arch/x86/kernel/e820.c | 4 | ||||
-rw-r--r-- | arch/x86/mm/ioremap.c | 6 |
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 | |||
935 | config X86_PAE | 935 | config 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 | ||
944 | config ARCH_PHYS_ADDR_T_64BIT | ||
945 | def_bool X86_64 || X86_PAE | ||
946 | |||
945 | # Common NUMA Features | 947 | # Common NUMA Features |
946 | config NUMA | 948 | config 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; |