This series enables memory hot remove on arm64 after fixing a memblock removal ordering problem in generic __remove_memory(). This is based on the following arm64 working tree. git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core Testing: Tested hot remove on arm64 for all 4K, 16K, 64K page config options with all possible VA_BITS and PGTABLE_LEVELS combinations. Build tested on non arm64 platforms. Changes in V2: - Added all received review and ack tags - Split the series from ZONE_DEVICE enablement for better review - Moved memblock re-order patch to the front as per Robin Murphy - Updated commit message on memblock re-order patch per Michal Hocko - Dropped [pmd|pud]_large() definitions - Used existing [pmd|pud]_sect() instead of earlier [pmd|pud]_large() - Removed __meminit and __ref tags as per Oscar Salvador - Dropped unnecessary 'ret' init in arch_add_memory() per Robin Murphy - Skipped calling into pgtable_page_dtor() for linear mapping page table pages and updated all relevant functions Changes in V1: (https://lkml.org/lkml/2019/4/3/28) Anshuman Khandual (2): mm/hotplug: Reorder arch_remove_memory() call in __remove_memory() arm64/mm: Enable memory hot remove arch/arm64/Kconfig | 3 + arch/arm64/include/asm/pgtable.h | 2 + arch/arm64/mm/mmu.c | 221 ++++++++++++++++++++++++++++++++++++++- mm/memory_hotplug.c | 3 +- 4 files changed, 225 insertions(+), 4 deletions(-) -- 2.7.4