Unlike other archs, ia64 reserves space for percpu areas during earlymemory initialization. These areas occupy a contiguous region indexedby cpu number on contiguous memory model or are grouped by node ondiscontiguous memory model.

As allocation and initialization are done by the arch code, all thatsetup_per_cpu_areas() needs to do is communicating the determinedlayout to the percpu allocator. This patch implementssetup_per_cpu_areas() for both contig and discontig memory models anddrops HAVE_LEGACY_PER_CPU_AREA.

Please note that for contig model, the allocation itself is modifiedonly to allocate for possible cpus instead of NR_CPUS. As dynamicpercpu allocator can handle non-direct mapping, there's no reason toallocate memory for cpus which aren't possible.