This fixies a few issues when I tried to enable pmem as RAM device on arm64. To use memory_add_physaddr_to_nid as a fallback nid, it would be better implement a general version (__weak) in mm/memory_hotplug. After that, arm64/ sh/s390 can simply use the general version, and PowerPC/ia64/x86 will use arch specific version. Tested on ThunderX2 host/qemu "-M virt" guest with a nvdimm device. The memblocks from the dax pmem device can be either hot-added or hot-removed on arm64 guest. Also passed the compilation test on x86. Changes: v3: - introduce general version memory_add_physaddr_to_nid, refine the arch specific one - fix an uninitialization bug in v2 device-dax patch v2: https://lkml.org/lkml/2020/7/7/71 - Drop unnecessary patch to harden try_offline_node - Use new solution(by David) to fix dev->target_node=-1 during probing - Refine the mem_hotplug_begin/done patch v1: https://lkml.org/lkml/2020/7/5/381 Jia He (6): mm/memory_hotplug: introduce default dummy memory_add_physaddr_to_nid() arm64/mm: use default dummy memory_add_physaddr_to_nid() sh/mm: use default dummy memory_add_physaddr_to_nid() mm: don't export memory_add_physaddr_to_nid in arch specific directory device-dax: use fallback nid when numa_node is invalid mm/memory_hotplug: fix unpaired mem_hotplug_begin/done arch/arm64/mm/numa.c | 10 ---------- arch/ia64/mm/numa.c | 2 -- arch/sh/mm/init.c | 9 --------- arch/x86/mm/numa.c | 1 - drivers/dax/kmem.c | 21 +++++++++++++-------- mm/memory_hotplug.c | 15 ++++++++++++--- 6 files changed, 25 insertions(+), 33 deletions(-) -- 2.17.1