aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/m32r/mm/discontig.c4
-rw-r--r--arch/powerpc/Kconfig3
-rw-r--r--arch/powerpc/include/asm/types.h7
-rw-r--r--arch/powerpc/platforms/Kconfig.cputype1
-rw-r--r--arch/powerpc/sysdev/ppc4xx_pci.c16
-rw-r--r--arch/x86/Kconfig4
-rw-r--r--arch/x86/kernel/e820.c4
-rw-r--r--arch/x86/mm/ioremap.c6
8 files changed, 21 insertions, 24 deletions
diff --git a/arch/m32r/mm/discontig.c b/arch/m32r/mm/discontig.c
index cbc3c4c54566..7daf897292cf 100644
--- a/arch/m32r/mm/discontig.c
+++ b/arch/m32r/mm/discontig.c
@@ -111,9 +111,9 @@ unsigned long __init setup_memory(void)
111 initrd_start, INITRD_SIZE); 111 initrd_start, INITRD_SIZE);
112 } else { 112 } else {
113 printk("initrd extends beyond end of memory " 113 printk("initrd extends beyond end of memory "
114 "(0x%08lx > 0x%08lx)\ndisabling initrd\n", 114 "(0x%08lx > 0x%08llx)\ndisabling initrd\n",
115 INITRD_START + INITRD_SIZE, 115 INITRD_START + INITRD_SIZE,
116 PFN_PHYS(max_low_pfn)); 116 (unsigned long long)PFN_PHYS(max_low_pfn));
117 117
118 initrd_start = 0; 118 initrd_start = 0;
119 } 119 }
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 587da5e0990f..f5f83ee60411 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -22,6 +22,9 @@ config WORD_SIZE
22config PPC_MERGE 22config PPC_MERGE
23 def_bool y 23 def_bool y
24 24
25config ARCH_PHYS_ADDR_T_64BIT
26 def_bool PPC64 || PHYS_64BIT
27
25config MMU 28config MMU
26 bool 29 bool
27 default y 30 default y
diff --git a/arch/powerpc/include/asm/types.h b/arch/powerpc/include/asm/types.h
index d3374bc865ba..c646f34c4e8b 100644
--- a/arch/powerpc/include/asm/types.h
+++ b/arch/powerpc/include/asm/types.h
@@ -48,13 +48,6 @@ typedef struct {
48 48
49typedef __vector128 vector128; 49typedef __vector128 vector128;
50 50
51/* Physical address used by some IO functions */
52#if defined(CONFIG_PPC64) || defined(CONFIG_PHYS_64BIT)
53typedef u64 phys_addr_t;
54#else
55typedef u32 phys_addr_t;
56#endif
57
58#ifdef __powerpc64__ 51#ifdef __powerpc64__
59typedef u64 dma_addr_t; 52typedef u64 dma_addr_t;
60#else 53#else
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index 7f6512733862..be852fd407a8 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -135,7 +135,6 @@ config PTE_64BIT
135config PHYS_64BIT 135config PHYS_64BIT
136 bool 'Large physical address support' if E500 136 bool 'Large physical address support' if E500
137 depends on 44x || E500 137 depends on 44x || E500
138 select RESOURCES_64BIT
139 default y if 44x 138 default y if 44x
140 ---help--- 139 ---help---
141 This option enables kernel support for larger than 32-bit physical 140 This option enables kernel support for larger than 32-bit physical
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index fb368dfde5d4..e8a76d9539db 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -41,13 +41,10 @@ extern unsigned long total_memory;
41#define U64_TO_U32_LOW(val) ((u32)((val) & 0x00000000ffffffffULL)) 41#define U64_TO_U32_LOW(val) ((u32)((val) & 0x00000000ffffffffULL))
42#define U64_TO_U32_HIGH(val) ((u32)((val) >> 32)) 42#define U64_TO_U32_HIGH(val) ((u32)((val) >> 32))
43 43
44#ifdef CONFIG_RESOURCES_64BIT 44#define RES_TO_U32_LOW(val) \
45#define RES_TO_U32_LOW(val) U64_TO_U32_LOW(val) 45 ((sizeof(resource_size_t) > sizeof(u32)) ? U64_TO_U32_LOW(val) : (val))
46#define RES_TO_U32_HIGH(val) U64_TO_U32_HIGH(val) 46#define RES_TO_U32_HIGH(val) \
47#else 47 ((sizeof(resource_size_t) > sizeof(u32)) ? U64_TO_U32_HIGH(val) : (0))
48#define RES_TO_U32_LOW(val) (val)
49#define RES_TO_U32_HIGH(val) (0)
50#endif
51 48
52static inline int ppc440spe_revA(void) 49static inline int ppc440spe_revA(void)
53{ 50{
@@ -145,12 +142,11 @@ static int __init ppc4xx_parse_dma_ranges(struct pci_controller *hose,
145 142
146 /* Use that */ 143 /* Use that */
147 res->start = pci_addr; 144 res->start = pci_addr;
148#ifndef CONFIG_RESOURCES_64BIT
149 /* Beware of 32 bits resources */ 145 /* Beware of 32 bits resources */
150 if ((pci_addr + size) > 0x100000000ull) 146 if (sizeof(resource_size_t) == sizeof(u32) &&
147 (pci_addr + size) > 0x100000000ull)
151 res->end = 0xffffffff; 148 res->end = 0xffffffff;
152 else 149 else
153#endif
154 res->end = res->start + size - 1; 150 res->end = res->start + size - 1;
155 break; 151 break;
156 } 152 }
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index f65c2744d573..837a9aae0453 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -947,13 +947,15 @@ config X86_PAE
947 def_bool n 947 def_bool n
948 prompt "PAE (Physical Address Extension) Support" 948 prompt "PAE (Physical Address Extension) Support"
949 depends on X86_32 && !HIGHMEM4G 949 depends on X86_32 && !HIGHMEM4G
950 select RESOURCES_64BIT
951 help 950 help
952 PAE is required for NX support, and furthermore enables 951 PAE is required for NX support, and furthermore enables
953 larger swapspace support for non-overcommit purposes. It 952 larger swapspace support for non-overcommit purposes. It
954 has the cost of more pagetable lookup overhead, and also 953 has the cost of more pagetable lookup overhead, and also
955 consumes more pagetable space per process. 954 consumes more pagetable space per process.
956 955
956config ARCH_PHYS_ADDR_T_64BIT
957 def_bool X86_64 || X86_PAE
958
957# Common NUMA Features 959# Common NUMA Features
958config NUMA 960config NUMA
959 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" 961 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;