diff options
-rw-r--r-- | arch/ia64/Kconfig | 4 | ||||
-rw-r--r-- | arch/ia64/mm/contig.c | 4 | ||||
-rw-r--r-- | arch/ia64/mm/discontig.c | 6 |
3 files changed, 11 insertions, 3 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 549ead597934..db185f34e341 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -25,8 +25,8 @@ config 64BIT | |||
25 | default y | 25 | default y |
26 | 26 | ||
27 | config ZONE_DMA | 27 | config ZONE_DMA |
28 | bool | 28 | def_bool y |
29 | default y | 29 | depends on !IA64_SGI_SN2 |
30 | 30 | ||
31 | config MMU | 31 | config MMU |
32 | bool | 32 | bool |
diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c index 63e6d49c5813..ca4d41e5f177 100644 --- a/arch/ia64/mm/contig.c +++ b/arch/ia64/mm/contig.c | |||
@@ -259,9 +259,11 @@ paging_init (void) | |||
259 | num_physpages = 0; | 259 | num_physpages = 0; |
260 | efi_memmap_walk(count_pages, &num_physpages); | 260 | efi_memmap_walk(count_pages, &num_physpages); |
261 | 261 | ||
262 | max_dma = virt_to_phys((void *) MAX_DMA_ADDRESS) >> PAGE_SHIFT; | ||
263 | memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); | 262 | memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); |
263 | #ifdef CONFIG_ZONE_DMA | ||
264 | max_dma = virt_to_phys((void *) MAX_DMA_ADDRESS) >> PAGE_SHIFT; | ||
264 | max_zone_pfns[ZONE_DMA] = max_dma; | 265 | max_zone_pfns[ZONE_DMA] = max_dma; |
266 | #endif | ||
265 | max_zone_pfns[ZONE_NORMAL] = max_low_pfn; | 267 | max_zone_pfns[ZONE_NORMAL] = max_low_pfn; |
266 | 268 | ||
267 | #ifdef CONFIG_VIRTUAL_MEM_MAP | 269 | #ifdef CONFIG_VIRTUAL_MEM_MAP |
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 6eae596c509d..16835108bb5b 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c | |||
@@ -37,7 +37,9 @@ struct early_node_data { | |||
37 | unsigned long pernode_size; | 37 | unsigned long pernode_size; |
38 | struct bootmem_data bootmem_data; | 38 | struct bootmem_data bootmem_data; |
39 | unsigned long num_physpages; | 39 | unsigned long num_physpages; |
40 | #ifdef CONFIG_ZONE_DMA | ||
40 | unsigned long num_dma_physpages; | 41 | unsigned long num_dma_physpages; |
42 | #endif | ||
41 | unsigned long min_pfn; | 43 | unsigned long min_pfn; |
42 | unsigned long max_pfn; | 44 | unsigned long max_pfn; |
43 | }; | 45 | }; |
@@ -633,9 +635,11 @@ static __init int count_node_pages(unsigned long start, unsigned long len, int n | |||
633 | unsigned long end = start + len; | 635 | unsigned long end = start + len; |
634 | 636 | ||
635 | mem_data[node].num_physpages += len >> PAGE_SHIFT; | 637 | mem_data[node].num_physpages += len >> PAGE_SHIFT; |
638 | #ifdef CONFIG_ZONE_DMA | ||
636 | if (start <= __pa(MAX_DMA_ADDRESS)) | 639 | if (start <= __pa(MAX_DMA_ADDRESS)) |
637 | mem_data[node].num_dma_physpages += | 640 | mem_data[node].num_dma_physpages += |
638 | (min(end, __pa(MAX_DMA_ADDRESS)) - start) >>PAGE_SHIFT; | 641 | (min(end, __pa(MAX_DMA_ADDRESS)) - start) >>PAGE_SHIFT; |
642 | #endif | ||
639 | start = GRANULEROUNDDOWN(start); | 643 | start = GRANULEROUNDDOWN(start); |
640 | start = ORDERROUNDDOWN(start); | 644 | start = ORDERROUNDDOWN(start); |
641 | end = GRANULEROUNDUP(end); | 645 | end = GRANULEROUNDUP(end); |
@@ -688,7 +692,9 @@ void __init paging_init(void) | |||
688 | } | 692 | } |
689 | 693 | ||
690 | memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); | 694 | memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); |
695 | #ifdef CONFIG_ZONE_DMA | ||
691 | max_zone_pfns[ZONE_DMA] = max_dma; | 696 | max_zone_pfns[ZONE_DMA] = max_dma; |
697 | #endif | ||
692 | max_zone_pfns[ZONE_NORMAL] = max_pfn; | 698 | max_zone_pfns[ZONE_NORMAL] = max_pfn; |
693 | free_area_init_nodes(max_zone_pfns); | 699 | free_area_init_nodes(max_zone_pfns); |
694 | 700 | ||