X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=arch%2Fia64%2Fmm%2Fcontig.c;h=9855ba3180944b2d13569dba7e6f7139dcb0e621;hb=ff741906ad3cf4b8ca1a958acb013a97a6381ca2;hp=acaaec4e46811bdf697fdd96bbd37ac9a41dd6b5;hpb=62d3af1b5f3aa613e0a489e8d798d45b07f373f4;p=deliverable%2Flinux.git diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c index acaaec4e4681..9855ba318094 100644 --- a/arch/ia64/mm/contig.c +++ b/arch/ia64/mm/contig.c @@ -181,13 +181,15 @@ 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 (smp_processor_id() == 0) { + if (first_time) { + first_time=0; cpu_data = __alloc_bootmem(PERCPU_PAGE_SIZE * NR_CPUS, PERCPU_PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); for (cpu = 0; cpu < NR_CPUS; cpu++) {