Re: [RFC PATCH 06/29] memblock: rename memblock_alloc{_nid,_try_nid} to memblock_phys_alloc*

Michal Hocko
2018-09-06T07:35:33Z

On Wed 05-09-18 18:59:21, Mike Rapoport wrote:
> This will allow using memblock_alloc for memblock allocations returning
> virtual address.

The description confused me at first because it talks about a future
patch rather than this one.

Anyway unlike the other renaming patch I agree with this one. It makes
it explicit that the caller gets a physical address rather than a
virtual one. Just make it explicit in the changelog.

> The conversion is done using the following semantic patch:
>
> @@
> expression e1, e2, e3;
> @@
> (
> - memblock_alloc(e1, e2)
> + memblock_phys_alloc(e1, e2)
> |
> - memblock_alloc_nid(e1, e2, e3)
> + memblock_phys_alloc_nid(e1, e2, e3)
> |
> - memblock_alloc_try_nid(e1, e2, e3)
> + memblock_phys_alloc_try_nid(e1, e2, e3)
> )
>
> Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>

I do trust Coccinelle so I haven't double checked the resulting patch
but the change makes sense to me

Acked-by: Michal Hocko <mhocko@suse.com>

> ---
> arch/arm/mm/mmu.c | 2 +-
> arch/arm64/mm/mmu.c | 2 +-
> arch/arm64/mm/numa.c | 2 +-
> arch/c6x/mm/dma-coherent.c | 4 ++--
> arch/nds32/mm/init.c | 8 ++++----
> arch/openrisc/mm/init.c | 2 +-
> arch/openrisc/mm/ioremap.c | 2 +-
> arch/powerpc/kernel/dt_cpu_ftrs.c | 4 +---
> arch/powerpc/kernel/paca.c | 2 +-
> arch/powerpc/kernel/prom.c | 2 +-
> arch/powerpc/kernel/setup-common.c | 3 +--
> arch/powerpc/kernel/setup_32.c | 10 +++++-----
> arch/powerpc/mm/numa.c | 2 +-
> arch/powerpc/mm/pgtable_32.c | 2 +-
> arch/powerpc/mm/ppc_mmu_32.c | 2 +-
> arch/powerpc/platforms/pasemi/iommu.c | 2 +-
> arch/powerpc/platforms/powernv/opal.c | 2 +-
> arch/powerpc/sysdev/dart_iommu.c | 2 +-
> arch/s390/kernel/crash_dump.c | 2 +-
> arch/s390/kernel/setup.c | 3 ++-
> arch/s390/mm/vmem.c | 4 ++--
> arch/s390/numa/numa.c | 2 +-
> arch/sparc/kernel/mdesc.c | 2 +-
> arch/sparc/kernel/prom_64.c | 2 +-
> arch/sparc/mm/init_64.c | 11 ++++++-----
> arch/unicore32/mm/mmu.c | 2 +-
> arch/x86/mm/numa.c | 2 +-
> drivers/firmware/efi/memmap.c | 2 +-
> include/linux/memblock.h | 6 +++---
> mm/memblock.c | 8 ++++----
> 30 files changed, 50 insertions(+), 51 deletions(-)
>
> diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
> index e46a6a4..f5cc1cc 100644
> --- a/arch/arm/mm/mmu.c
> +++ b/arch/arm/mm/mmu.c
> @@ -721,7 +721,7 @@ EXPORT_SYMBOL(phys_mem_access_prot);
>
> static void __init *early_alloc_aligned(unsigned long sz, unsigned long align)
> {
> - void *ptr = __va(memblock_alloc(sz, align));
> + void *ptr = __va(memblock_phys_alloc(sz, align));
> memset(ptr, 0, sz);
> return ptr;
> }
> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
> index 65f8627..33558f4 100644
> --- a/arch/arm64/mm/mmu.c
> +++ b/arch/arm64/mm/mmu.c
> @@ -83,7 +83,7 @@ static phys_addr_t __init early_pgtable_alloc(void)
> phys_addr_t phys;
> void *ptr;
>
> - phys = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
> + phys = memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE);
>
> /*
> * The FIX_{PGD,PUD,PMD} slots may be in active use, but the FIX_PTE
> diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c
> index 146c04c..e5aacd6 100644
> --- a/arch/arm64/mm/numa.c
> +++ b/arch/arm64/mm/numa.c
> @@ -237,7 +237,7 @@ static void __init setup_node_data(int nid, u64 start_pfn, u64 end_pfn)
> if (start_pfn >= end_pfn)
> pr_info("Initmem setup node %d [<memory-less node>]\n", nid);
>
> - nd_pa = memblock_alloc_try_nid(nd_size, SMP_CACHE_BYTES, nid);
> + nd_pa = memblock_phys_alloc_try_nid(nd_size, SMP_CACHE_BYTES, nid);
> nd = __va(nd_pa);
>
> /* report and initialize */
> diff --git a/arch/c6x/mm/dma-coherent.c b/arch/c6x/mm/dma-coherent.c
> index d0a8e0c..01305c7 100644
> --- a/arch/c6x/mm/dma-coherent.c
> +++ b/arch/c6x/mm/dma-coherent.c
> @@ -135,8 +135,8 @@ void __init coherent_mem_init(phys_addr_t start, u32 size)
> if (dma_size & (PAGE_SIZE - 1))
> ++dma_pages;
>
> - bitmap_phys = memblock_alloc(BITS_TO_LONGS(dma_pages) * sizeof(long),
> - sizeof(long));
> + bitmap_phys = memblock_phys_alloc(BITS_TO_LONGS(dma_pages) * sizeof(long),
> + sizeof(long));
>
> dma_bitmap = phys_to_virt(bitmap_phys);
> memset(dma_bitmap, 0, dma_pages * PAGE_SIZE);
> diff --git a/arch/nds32/mm/init.c b/arch/nds32/mm/init.c
> index c713d2a..5af81b8 100644
> --- a/arch/nds32/mm/init.c
> +++ b/arch/nds32/mm/init.c
> @@ -81,7 +81,7 @@ static void __init map_ram(void)
> }
>
> /* Alloc one page for holding PTE's... */
> - pte = (pte_t *) __va(memblock_alloc(PAGE_SIZE, PAGE_SIZE));
> + pte = (pte_t *) __va(memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE));
> memset(pte, 0, PAGE_SIZE);
> set_pmd(pme, __pmd(__pa(pte) + _PAGE_KERNEL_TABLE));
>
> @@ -114,7 +114,7 @@ static void __init fixedrange_init(void)
> pgd = swapper_pg_dir + pgd_index(vaddr);
> pud = pud_offset(pgd, vaddr);
> pmd = pmd_offset(pud, vaddr);
> - fixmap_pmd_p = (pmd_t *) __va(memblock_alloc(PAGE_SIZE, PAGE_SIZE));
> + fixmap_pmd_p = (pmd_t *) __va(memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE));
> memset(fixmap_pmd_p, 0, PAGE_SIZE);
> set_pmd(pmd, __pmd(__pa(fixmap_pmd_p) + _PAGE_KERNEL_TABLE));
>
> @@ -127,7 +127,7 @@ static void __init fixedrange_init(void)
> pgd = swapper_pg_dir + pgd_index(vaddr);
> pud = pud_offset(pgd, vaddr);
> pmd = pmd_offset(pud, vaddr);
> - pte = (pte_t *) __va(memblock_alloc(PAGE_SIZE, PAGE_SIZE));
> + pte = (pte_t *) __va(memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE));
> memset(pte, 0, PAGE_SIZE);
> set_pmd(pmd, __pmd(__pa(pte) + _PAGE_KERNEL_TABLE));
> pkmap_page_table = pte;
> @@ -153,7 +153,7 @@ void __init paging_init(void)
> fixedrange_init();
>
> /* allocate space for empty_zero_page */
> - zero_page = __va(memblock_alloc(PAGE_SIZE, PAGE_SIZE));
> + zero_page = __va(memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE));
> memset(zero_page, 0, PAGE_SIZE);
> zone_sizes_init();
>
> diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c
> index 6972d5d..b7670de 100644
> --- a/arch/openrisc/mm/init.c
> +++ b/arch/openrisc/mm/init.c
> @@ -106,7 +106,7 @@ static void __init map_ram(void)
> }
>
> /* Alloc one page for holding PTE's... */
> - pte = (pte_t *) __va(memblock_alloc(PAGE_SIZE, PAGE_SIZE));
> + pte = (pte_t *) __va(memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE));
> set_pmd(pme, __pmd(_KERNPG_TABLE + __pa(pte)));
>
> /* Fill the newly allocated page with PTE'S */
> diff --git a/arch/openrisc/mm/ioremap.c b/arch/openrisc/mm/ioremap.c
> index 2175e4b..c969752 100644
> --- a/arch/openrisc/mm/ioremap.c
> +++ b/arch/openrisc/mm/ioremap.c
> @@ -126,7 +126,7 @@ pte_t __ref *pte_alloc_one_kernel(struct mm_struct *mm,
> if (likely(mem_init_done)) {
> pte = (pte_t *) __get_free_page(GFP_KERNEL);
> } else {
> - pte = (pte_t *) __va(memblock_alloc(PAGE_SIZE, PAGE_SIZE));
> + pte = (pte_t *) __va(memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE));
> }
>
> if (pte)
> diff --git a/arch/powerpc/kernel/dt_cpu_ftrs.c b/arch/powerpc/kernel/dt_cpu_ftrs.c
> index f432054..8be3721 100644
> --- a/arch/powerpc/kernel/dt_cpu_ftrs.c
> +++ b/arch/powerpc/kernel/dt_cpu_ftrs.c
> @@ -1008,9 +1008,7 @@ static int __init dt_cpu_ftrs_scan_callback(unsigned long node, const char
> /* Count and allocate space for cpu features */
> of_scan_flat_dt_subnodes(node, count_cpufeatures_subnodes,
> &nr_dt_cpu_features);
> - dt_cpu_features = __va(
> - memblock_alloc(sizeof(struct dt_cpu_feature)*
> - nr_dt_cpu_features, PAGE_SIZE));
> + dt_cpu_features = __va(memblock_phys_alloc(sizeof(struct dt_cpu_feature) * nr_dt_cpu_features, PAGE_SIZE));
>
> cpufeatures_setup_start(isa);
>
> diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c
> index 0ee3e6d..f331a00 100644
> --- a/arch/powerpc/kernel/paca.c
> +++ b/arch/powerpc/kernel/paca.c
> @@ -198,7 +198,7 @@ void __init allocate_paca_ptrs(void)
> paca_nr_cpu_ids = nr_cpu_ids;
>
> paca_ptrs_size = sizeof(struct paca_struct *) * nr_cpu_ids;
> - paca_ptrs = __va(memblock_alloc(paca_ptrs_size, 0));
> + paca_ptrs = __va(memblock_phys_alloc(paca_ptrs_size, 0));
> memset(paca_ptrs, 0x88, paca_ptrs_size);
> }
>
> diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
> index c4d7078..fe758ce 100644
> --- a/arch/powerpc/kernel/prom.c
> +++ b/arch/powerpc/kernel/prom.c
> @@ -126,7 +126,7 @@ static void __init move_device_tree(void)
> if ((memory_limit && (start + size) > PHYSICAL_START + memory_limit) ||
> overlaps_crashkernel(start, size) ||
> overlaps_initrd(start, size)) {
> - p = __va(memblock_alloc(size, PAGE_SIZE));
> + p = __va(memblock_phys_alloc(size, PAGE_SIZE));
> memcpy(p, initial_boot_params, size);
> initial_boot_params = p;
> DBG("Moved device tree to 0x%p\n", p);
> diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
> index 93fa0c9..710ff98 100644
> --- a/arch/powerpc/kernel/setup-common.c
> +++ b/arch/powerpc/kernel/setup-common.c
> @@ -459,8 +459,7 @@ void __init smp_setup_cpu_maps(void)
>
> DBG("smp_setup_cpu_maps()\n");
>
> - cpu_to_phys_id = __va(memblock_alloc(nr_cpu_ids * sizeof(u32),
> - __alignof__(u32)));
> + cpu_to_phys_id = __va(memblock_phys_alloc(nr_cpu_ids * sizeof(u32), __alignof__(u32)));
> memset(cpu_to_phys_id, 0, nr_cpu_ids * sizeof(u32));
>
> for_each_node_by_type(dn, "cpu") {
> diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
> index 8c507be..8190960 100644
> --- a/arch/powerpc/kernel/setup_32.c
> +++ b/arch/powerpc/kernel/setup_32.c
> @@ -206,9 +206,9 @@ void __init irqstack_early_init(void)
> * as the memblock is limited to lowmem by default */
> for_each_possible_cpu(i) {
> softirq_ctx[i] = (struct thread_info *)
> - __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
> + __va(memblock_phys_alloc(THREAD_SIZE, THREAD_SIZE));
> hardirq_ctx[i] = (struct thread_info *)
> - __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
> + __va(memblock_phys_alloc(THREAD_SIZE, THREAD_SIZE));
> }
> }
>
> @@ -227,12 +227,12 @@ void __init exc_lvl_early_init(void)
> #endif
>
> critirq_ctx[hw_cpu] = (struct thread_info *)
> - __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
> + __va(memblock_phys_alloc(THREAD_SIZE, THREAD_SIZE));
> #ifdef CONFIG_BOOKE
> dbgirq_ctx[hw_cpu] = (struct thread_info *)
> - __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
> + __va(memblock_phys_alloc(THREAD_SIZE, THREAD_SIZE));
> mcheckirq_ctx[hw_cpu] = (struct thread_info *)
> - __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
> + __va(memblock_phys_alloc(THREAD_SIZE, THREAD_SIZE));
> #endif
> }
> }
> diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
> index 35ac542..5fc0587 100644
> --- a/arch/powerpc/mm/numa.c
> +++ b/arch/powerpc/mm/numa.c
> @@ -788,7 +788,7 @@ static void __init setup_node_data(int nid, u64 start_pfn, u64 end_pfn)
> void *nd;
> int tnid;
>
> - nd_pa = memblock_alloc_try_nid(nd_size, SMP_CACHE_BYTES, nid);
> + nd_pa = memblock_phys_alloc_try_nid(nd_size, SMP_CACHE_BYTES, nid);
> nd = __va(nd_pa);
>
> /* report and initialize */
> diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
> index 120a49b..989a1c2 100644
> --- a/arch/powerpc/mm/pgtable_32.c
> +++ b/arch/powerpc/mm/pgtable_32.c
> @@ -50,7 +50,7 @@ __ref pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
> if (slab_is_available()) {
> pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_ZERO);
> } else {
> - pte = __va(memblock_alloc(PAGE_SIZE, PAGE_SIZE));
> + pte = __va(memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE));
> if (pte)
> clear_page(pte);
> }
> diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c
> index bea6c54..9ee0357 100644
> --- a/arch/powerpc/mm/ppc_mmu_32.c
> +++ b/arch/powerpc/mm/ppc_mmu_32.c
> @@ -224,7 +224,7 @@ void __init MMU_init_hw(void)
> * Find some memory for the hash table.
> */
> if ( ppc_md.progress ) ppc_md.progress("hash:find piece", 0x322);
> - Hash = __va(memblock_alloc(Hash_size, Hash_size));
> + Hash = __va(memblock_phys_alloc(Hash_size, Hash_size));
> memset(Hash, 0, Hash_size);
> _SDR1 = __pa(Hash) | SDR1_LOW_BITS;
>
> diff --git a/arch/powerpc/platforms/pasemi/iommu.c b/arch/powerpc/platforms/pasemi/iommu.c
> index f06c83f..f297152 100644
> --- a/arch/powerpc/platforms/pasemi/iommu.c
> +++ b/arch/powerpc/platforms/pasemi/iommu.c
> @@ -213,7 +213,7 @@ static int __init iob_init(struct device_node *dn)
> pr_info("IOBMAP L2 allocated at: %p\n", iob_l2_base);
>
> /* Allocate a spare page to map all invalid IOTLB pages. */
> - tmp = memblock_alloc(IOBMAP_PAGE_SIZE, IOBMAP_PAGE_SIZE);
> + tmp = memblock_phys_alloc(IOBMAP_PAGE_SIZE, IOBMAP_PAGE_SIZE);
> if (!tmp)
> panic("IOBMAP: Cannot allocate spare page!");
> /* Empty l1 is marked invalid */
> diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
> index 38fe408..9431921 100644
> --- a/arch/powerpc/platforms/powernv/opal.c
> +++ b/arch/powerpc/platforms/powernv/opal.c
> @@ -171,7 +171,7 @@ int __init early_init_dt_scan_recoverable_ranges(unsigned long node,
> /*
> * Allocate a buffer to hold the MC recoverable ranges.
> */
> - mc_recoverable_range =__va(memblock_alloc(size, __alignof__(u64)));
> + mc_recoverable_range =__va(memblock_phys_alloc(size, __alignof__(u64)));
> memset(mc_recoverable_range, 0, size);
>
> for (i = 0; i < mc_recoverable_range_len; i++) {
> diff --git a/arch/powerpc/sysdev/dart_iommu.c b/arch/powerpc/sysdev/dart_iommu.c
> index 5ca3e22..a5b40d1 100644
> --- a/arch/powerpc/sysdev/dart_iommu.c
> +++ b/arch/powerpc/sysdev/dart_iommu.c
> @@ -261,7 +261,7 @@ static void allocate_dart(void)
> * that to work around what looks like a problem with the HT bridge
> * prefetching into invalid pages and corrupting data
> */
> - tmp = memblock_alloc(DART_PAGE_SIZE, DART_PAGE_SIZE);
> + tmp = memblock_phys_alloc(DART_PAGE_SIZE, DART_PAGE_SIZE);
> dart_emptyval = DARTMAP_VALID | ((tmp >> DART_PAGE_SHIFT) &
> DARTMAP_RPNMASK);
>
> diff --git a/arch/s390/kernel/crash_dump.c b/arch/s390/kernel/crash_dump.c
> index 376f6b6..d17566a 100644
> --- a/arch/s390/kernel/crash_dump.c
> +++ b/arch/s390/kernel/crash_dump.c
> @@ -61,7 +61,7 @@ struct save_area * __init save_area_alloc(bool is_boot_cpu)
> {
> struct save_area *sa;
>
> - sa = (void *) memblock_alloc(sizeof(*sa), 8);
> + sa = (void *) memblock_phys_alloc(sizeof(*sa), 8);
> if (is_boot_cpu)
> list_add(&sa->list, &dump_save_areas);
> else
> diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
> index c637c12..2f2ee43 100644
> --- a/arch/s390/kernel/setup.c
> +++ b/arch/s390/kernel/setup.c
> @@ -843,7 +843,8 @@ static void __init setup_randomness(void)
> {
> struct sysinfo_3_2_2 *vmms;
>
> - vmms = (struct sysinfo_3_2_2 *) memblock_alloc(PAGE_SIZE, PAGE_SIZE);
> + vmms = (struct sysinfo_3_2_2 *) memblock_phys_alloc(PAGE_SIZE,
> + PAGE_SIZE);
> if (stsi(vmms, 3, 2, 2) = 0 && vmms->count)
> add_device_randomness(&vmms->vm, sizeof(vmms->vm[0]) * vmms->count);
> memblock_free((unsigned long) vmms, PAGE_SIZE);
> diff --git a/arch/s390/mm/vmem.c b/arch/s390/mm/vmem.c
> index db55561..04638b0 100644
> --- a/arch/s390/mm/vmem.c
> +++ b/arch/s390/mm/vmem.c
> @@ -36,7 +36,7 @@ static void __ref *vmem_alloc_pages(unsigned int order)
>
> if (slab_is_available())
> return (void *)__get_free_pages(GFP_KERNEL, order);
> - return (void *) memblock_alloc(size, size);
> + return (void *) memblock_phys_alloc(size, size);
> }
>
> void *vmem_crst_alloc(unsigned long val)
> @@ -57,7 +57,7 @@ pte_t __ref *vmem_pte_alloc(void)
> if (slab_is_available())
> pte = (pte_t *) page_table_alloc(&init_mm);
> else
> - pte = (pte_t *) memblock_alloc(size, size);
> + pte = (pte_t *) memblock_phys_alloc(size, size);
> if (!pte)
> return NULL;
> memset64((u64 *)pte, _PAGE_INVALID, PTRS_PER_PTE);
> diff --git a/arch/s390/numa/numa.c b/arch/s390/numa/numa.c
> index 5bd3744..297f5d8 100644
> --- a/arch/s390/numa/numa.c
> +++ b/arch/s390/numa/numa.c
> @@ -64,7 +64,7 @@ static __init pg_data_t *alloc_node_data(void)
> {
> pg_data_t *res;
>
> - res = (pg_data_t *) memblock_alloc(sizeof(pg_data_t), 8);
> + res = (pg_data_t *) memblock_phys_alloc(sizeof(pg_data_t), 8);
> memset(res, 0, sizeof(pg_data_t));
> return res;
> }
> diff --git a/arch/sparc/kernel/mdesc.c b/arch/sparc/kernel/mdesc.c
> index 39a2503..59131e7 100644
> --- a/arch/sparc/kernel/mdesc.c
> +++ b/arch/sparc/kernel/mdesc.c
> @@ -170,7 +170,7 @@ static struct mdesc_handle * __init mdesc_memblock_alloc(unsigned int mdesc_size
> mdesc_size);
> alloc_size = PAGE_ALIGN(handle_size);
>
> - paddr = memblock_alloc(alloc_size, PAGE_SIZE);
> + paddr = memblock_phys_alloc(alloc_size, PAGE_SIZE);
>
> hp = NULL;
> if (paddr) {
> diff --git a/arch/sparc/kernel/prom_64.c b/arch/sparc/kernel/prom_64.c
> index baeaeed..c37955d 100644
> --- a/arch/sparc/kernel/prom_64.c
> +++ b/arch/sparc/kernel/prom_64.c
> @@ -34,7 +34,7 @@
>
> void * __init prom_early_alloc(unsigned long size)
> {
> - unsigned long paddr = memblock_alloc(size, SMP_CACHE_BYTES);
> + unsigned long paddr = memblock_phys_alloc(size, SMP_CACHE_BYTES);
> void *ret;
>
> if (!paddr) {
> diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index f396048..578ec3d 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -1092,7 +1092,8 @@ static void __init allocate_node_data(int nid)
> #ifdef CONFIG_NEED_MULTIPLE_NODES
> unsigned long paddr;
>
> - paddr = memblock_alloc_try_nid(sizeof(struct pglist_data), SMP_CACHE_BYTES, nid);
> + paddr = memblock_phys_alloc_try_nid(sizeof(struct pglist_data),
> + SMP_CACHE_BYTES, nid);
> if (!paddr) {
> prom_printf("Cannot allocate pglist_data for nid[%d]\n", nid);
> prom_halt();
> @@ -1266,8 +1267,8 @@ static int __init grab_mlgroups(struct mdesc_handle *md)
> if (!count)
> return -ENOENT;
>
> - paddr = memblock_alloc(count * sizeof(struct mdesc_mlgroup),
> - SMP_CACHE_BYTES);
> + paddr = memblock_phys_alloc(count * sizeof(struct mdesc_mlgroup),
> + SMP_CACHE_BYTES);
> if (!paddr)
> return -ENOMEM;
>
> @@ -1307,8 +1308,8 @@ static int __init grab_mblocks(struct mdesc_handle *md)
> if (!count)
> return -ENOENT;
>
> - paddr = memblock_alloc(count * sizeof(struct mdesc_mblock),
> - SMP_CACHE_BYTES);
> + paddr = memblock_phys_alloc(count * sizeof(struct mdesc_mblock),
> + SMP_CACHE_BYTES);
> if (!paddr)
> return -ENOMEM;
>
> diff --git a/arch/unicore32/mm/mmu.c b/arch/unicore32/mm/mmu.c
> index 0c94b7b..18b355a 100644
> --- a/arch/unicore32/mm/mmu.c
> +++ b/arch/unicore32/mm/mmu.c
> @@ -144,7 +144,7 @@ static void __init build_mem_type_table(void)
>
> static void __init *early_alloc(unsigned long sz)
> {
> - void *ptr = __va(memblock_alloc(sz, sz));
> + void *ptr = __va(memblock_phys_alloc(sz, sz));
> memset(ptr, 0, sz);
> return ptr;
> }
> diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
> index fa15085..16e37d7 100644
> --- a/arch/x86/mm/numa.c
> +++ b/arch/x86/mm/numa.c
> @@ -196,7 +196,7 @@ static void __init alloc_node_data(int nid)
> * Allocate node data. Try node-local memory and then any node.
> * Never allocate in DMA zone.
> */
> - nd_pa = memblock_alloc_nid(nd_size, SMP_CACHE_BYTES, nid);
> + nd_pa = memblock_phys_alloc_nid(nd_size, SMP_CACHE_BYTES, nid);
> if (!nd_pa) {
> nd_pa = __memblock_alloc_base(nd_size, SMP_CACHE_BYTES,
> MEMBLOCK_ALLOC_ACCESSIBLE);
> diff --git a/drivers/firmware/efi/memmap.c b/drivers/firmware/efi/memmap.c
> index 5fc7052..ef618bc 100644
> --- a/drivers/firmware/efi/memmap.c
> +++ b/drivers/firmware/efi/memmap.c
> @@ -15,7 +15,7 @@
>
> static phys_addr_t __init __efi_memmap_alloc_early(unsigned long size)
> {
> - return memblock_alloc(size, 0);
> + return memblock_phys_alloc(size, 0);
> }
>
> static phys_addr_t __init __efi_memmap_alloc_late(unsigned long size)
> diff --git a/include/linux/memblock.h b/include/linux/memblock.h
> index 3c96a16..ab5f11b 100644
> --- a/include/linux/memblock.h
> +++ b/include/linux/memblock.h
> @@ -317,10 +317,10 @@ static inline int memblock_get_region_node(const struct memblock_region *r)
> }
> #endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */
>
> -phys_addr_t memblock_alloc_nid(phys_addr_t size, phys_addr_t align, int nid);
> -phys_addr_t memblock_alloc_try_nid(phys_addr_t size, phys_addr_t align, int nid);
> +phys_addr_t memblock_phys_alloc_nid(phys_addr_t size, phys_addr_t align, int nid);
> +phys_addr_t memblock_phys_alloc_try_nid(phys_addr_t size, phys_addr_t align, int nid);
>
> -phys_addr_t memblock_alloc(phys_addr_t size, phys_addr_t align);
> +phys_addr_t memblock_phys_alloc(phys_addr_t size, phys_addr_t align);
>
> /*
> * Set the allocation direction to bottom-up or top-down.
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 2a5940c..0ab9507 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -1344,7 +1344,7 @@ phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
> return memblock_alloc_range_nid(size, align, 0, max_addr, nid, flags);
> }
>
> -phys_addr_t __init memblock_alloc_nid(phys_addr_t size, phys_addr_t align, int nid)
> +phys_addr_t __init memblock_phys_alloc_nid(phys_addr_t size, phys_addr_t align, int nid)
> {
> enum memblock_flags flags = choose_memblock_flags();
> phys_addr_t ret;
> @@ -1379,14 +1379,14 @@ phys_addr_t __init memblock_alloc_base(phys_addr_t size, phys_addr_t align, phys
> return alloc;
> }
>
> -phys_addr_t __init memblock_alloc(phys_addr_t size, phys_addr_t align)
> +phys_addr_t __init memblock_phys_alloc(phys_addr_t size, phys_addr_t align)
> {
> return memblock_alloc_base(size, align, MEMBLOCK_ALLOC_ACCESSIBLE);
> }
>
> -phys_addr_t __init memblock_alloc_try_nid(phys_addr_t size, phys_addr_t align, int nid)
> +phys_addr_t __init memblock_phys_alloc_try_nid(phys_addr_t size, phys_addr_t align, int nid)
> {
> - phys_addr_t res = memblock_alloc_nid(size, align, nid);
> + phys_addr_t res = memblock_phys_alloc_nid(size, align, nid);
>
> if (res)
> return res;
> --
> 2.7.4
>

--
Michal Hocko
SUSE Labs