diff options
Diffstat (limited to 'arch/arm/mm/init.c')
-rw-r--r-- | arch/arm/mm/init.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index e5ab4362322f..2fee782077c1 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
@@ -212,6 +212,10 @@ static void __init arm_bootmem_init(unsigned long start_pfn, | |||
212 | } | 212 | } |
213 | 213 | ||
214 | #ifdef CONFIG_ZONE_DMA | 214 | #ifdef CONFIG_ZONE_DMA |
215 | |||
216 | unsigned long arm_dma_zone_size __read_mostly; | ||
217 | EXPORT_SYMBOL(arm_dma_zone_size); | ||
218 | |||
215 | /* | 219 | /* |
216 | * The DMA mask corresponding to the maximum bus address allocatable | 220 | * The DMA mask corresponding to the maximum bus address allocatable |
217 | * using GFP_DMA. The default here places no restriction on DMA | 221 | * using GFP_DMA. The default here places no restriction on DMA |
@@ -275,19 +279,17 @@ static void __init arm_bootmem_free(unsigned long min, unsigned long max_low, | |||
275 | #endif | 279 | #endif |
276 | } | 280 | } |
277 | 281 | ||
278 | #ifdef ARM_DMA_ZONE_SIZE | 282 | #ifdef CONFIG_ZONE_DMA |
279 | #ifndef CONFIG_ZONE_DMA | ||
280 | #error ARM_DMA_ZONE_SIZE set but no DMA zone to limit allocations | ||
281 | #endif | ||
282 | |||
283 | /* | 283 | /* |
284 | * Adjust the sizes according to any special requirements for | 284 | * Adjust the sizes according to any special requirements for |
285 | * this machine type. | 285 | * this machine type. |
286 | */ | 286 | */ |
287 | arm_adjust_dma_zone(zone_size, zhole_size, | 287 | if (arm_dma_zone_size) { |
288 | ARM_DMA_ZONE_SIZE >> PAGE_SHIFT); | 288 | arm_adjust_dma_zone(zone_size, zhole_size, |
289 | 289 | arm_dma_zone_size >> PAGE_SHIFT); | |
290 | arm_dma_limit = PHYS_OFFSET + ARM_DMA_ZONE_SIZE - 1; | 290 | arm_dma_limit = PHYS_OFFSET + arm_dma_zone_size - 1; |
291 | } else | ||
292 | arm_dma_limit = 0xffffffff; | ||
291 | #endif | 293 | #endif |
292 | 294 | ||
293 | free_area_init_node(0, zone_size, min, zhole_size); | 295 | free_area_init_node(0, zone_size, min, zhole_size); |