[PATCH] optional ZONE_DMA: optional ZONE_DMA for ia64
ZONE_DMA less operation for IA64 SGI platform Disable ZONE_DMA for SGI SN2. All memory is addressable by all devices and we do not need any special memory pool. Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
4b51d66989
commit
09ae1f585e
3 changed files with 11 additions and 3 deletions
|
@ -25,8 +25,8 @@ config 64BIT
|
|||
default y
|
||||
|
||||
config ZONE_DMA
|
||||
bool
|
||||
default y
|
||||
def_bool y
|
||||
depends on !IA64_SGI_SN2
|
||||
|
||||
config MMU
|
||||
bool
|
||||
|
|
|
@ -259,9 +259,11 @@ paging_init (void)
|
|||
num_physpages = 0;
|
||||
efi_memmap_walk(count_pages, &num_physpages);
|
||||
|
||||
max_dma = virt_to_phys((void *) MAX_DMA_ADDRESS) >> PAGE_SHIFT;
|
||||
memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
|
||||
#ifdef CONFIG_ZONE_DMA
|
||||
max_dma = virt_to_phys((void *) MAX_DMA_ADDRESS) >> PAGE_SHIFT;
|
||||
max_zone_pfns[ZONE_DMA] = max_dma;
|
||||
#endif
|
||||
max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
|
||||
|
||||
#ifdef CONFIG_VIRTUAL_MEM_MAP
|
||||
|
|
|
@ -37,7 +37,9 @@ struct early_node_data {
|
|||
unsigned long pernode_size;
|
||||
struct bootmem_data bootmem_data;
|
||||
unsigned long num_physpages;
|
||||
#ifdef CONFIG_ZONE_DMA
|
||||
unsigned long num_dma_physpages;
|
||||
#endif
|
||||
unsigned long min_pfn;
|
||||
unsigned long max_pfn;
|
||||
};
|
||||
|
@ -633,9 +635,11 @@ static __init int count_node_pages(unsigned long start, unsigned long len, int n
|
|||
unsigned long end = start + len;
|
||||
|
||||
mem_data[node].num_physpages += len >> PAGE_SHIFT;
|
||||
#ifdef CONFIG_ZONE_DMA
|
||||
if (start <= __pa(MAX_DMA_ADDRESS))
|
||||
mem_data[node].num_dma_physpages +=
|
||||
(min(end, __pa(MAX_DMA_ADDRESS)) - start) >>PAGE_SHIFT;
|
||||
#endif
|
||||
start = GRANULEROUNDDOWN(start);
|
||||
start = ORDERROUNDDOWN(start);
|
||||
end = GRANULEROUNDUP(end);
|
||||
|
@ -688,7 +692,9 @@ void __init paging_init(void)
|
|||
}
|
||||
|
||||
memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
|
||||
#ifdef CONFIG_ZONE_DMA
|
||||
max_zone_pfns[ZONE_DMA] = max_dma;
|
||||
#endif
|
||||
max_zone_pfns[ZONE_NORMAL] = max_pfn;
|
||||
free_area_init_nodes(max_zone_pfns);
|
||||
|
||||
|
|
Loading…
Reference in a new issue