X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fia64%2Fmm%2Fcontig.c;h=acaaec4e46811bdf697fdd96bbd37ac9a41dd6b5;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=84fd1c14c8a9d5c39a168e17dce7386491642aa6;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c index 84fd1c14c..acaaec4e4 100644 --- a/arch/ia64/mm/contig.c +++ b/arch/ia64/mm/contig.c @@ -97,7 +97,7 @@ find_max_pfn (unsigned long start, unsigned long end, void *arg) * Find a place to put the bootmap and return its starting address in * bootmap_start. This address must be page-aligned. */ -static int __init +int find_bootmap_location (unsigned long start, unsigned long end, void *arg) { unsigned long needed = *(unsigned long *)arg; @@ -141,7 +141,7 @@ find_bootmap_location (unsigned long start, unsigned long end, void *arg) * Walk the EFI memory map and find usable memory for the system, taking * into account reserved areas. */ -void __init +void find_memory (void) { unsigned long bootmap_size; @@ -176,20 +176,18 @@ find_memory (void) * * Allocate and setup per-cpu data areas. */ -void * __cpuinit +void * per_cpu_init (void) { void *cpu_data; int cpu; - static int first_time=1; /* * get_free_pages() cannot be used before cpu_init() done. BSP * allocates "NR_CPUS" pages for all CPUs to avoid that AP calls * get_zeroed_page(). */ - if (first_time) { - first_time=0; + if (smp_processor_id() == 0) { cpu_data = __alloc_bootmem(PERCPU_PAGE_SIZE * NR_CPUS, PERCPU_PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); for (cpu = 0; cpu < NR_CPUS; cpu++) { @@ -228,7 +226,7 @@ count_dma_pages (u64 start, u64 end, void *arg) * Set up the page tables. */ -void __init +void paging_init (void) { unsigned long max_dma;