The patch titled Subject: mm/memremap: rename and consolidate SECTION_SIZE has been added to the -mm tree. Its filename is mm-memremap-rename-and-consolidate-section_size.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-memremap-rename-and-consolidate-section_size.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-memremap-rename-and-consolidate-section_size.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Robin Murphy <robin.murphy@xxxxxxx> Subject: mm/memremap: rename and consolidate SECTION_SIZE Trying to activate ZONE_DEVICE for arm64 reveals that memremap's internal helpers for sparsemem sections conflict with arm64's definitions for hugepages, which inherit the name of "sections" from earlier versions of the ARM architecture. Disambiguate memremap (and now HMM too) by propagating sparsemem's PA_ prefix, to clarify that these values are in terms of addresses rather than PFNs (and because it's a heck of a lot easier than changing all the arch code). SECTION_MASK is unused, so it can just go. [anshuman.khandual@xxxxxxx: consolidate mm/hmm.c instance and updated the commit message] Link: http://lkml.kernel.org/r/d291c21d1b401e324f0e0bf23e1b3fdb4159d425.1558547956.git.robin.murphy@xxxxxxx Signed-off-by: Robin Murphy <robin.murphy@xxxxxxx> Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> Reviewed-by: David Hildenbrand <david@xxxxxxxxxx> Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx> Cc: Will Deacon <will.deacon@xxxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Ira Weiny <ira.weiny@xxxxxxxxx> Cc: Jerome Glisse <jglisse@xxxxxxxxxx> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> Cc: Oliver O'Halloran <oohall@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/mmzone.h | 1 + kernel/memremap.c | 10 ++++------ mm/hmm.c | 2 -- 3 files changed, 5 insertions(+), 8 deletions(-) --- a/include/linux/mmzone.h~mm-memremap-rename-and-consolidate-section_size +++ a/include/linux/mmzone.h @@ -1134,6 +1134,7 @@ static inline unsigned long early_pfn_to * PFN_SECTION_SHIFT pfn to/from section number */ #define PA_SECTION_SHIFT (SECTION_SIZE_BITS) +#define PA_SECTION_SIZE (1UL << PA_SECTION_SHIFT) #define PFN_SECTION_SHIFT (SECTION_SIZE_BITS - PAGE_SHIFT) #define NR_MEM_SECTIONS (1UL << SECTIONS_SHIFT) --- a/kernel/memremap.c~mm-memremap-rename-and-consolidate-section_size +++ a/kernel/memremap.c @@ -14,8 +14,6 @@ #include <linux/hmm.h> static DEFINE_XARRAY(pgmap_array); -#define SECTION_MASK ~((1UL << PA_SECTION_SHIFT) - 1) -#define SECTION_SIZE (1UL << PA_SECTION_SHIFT) #if IS_ENABLED(CONFIG_DEVICE_PRIVATE) vm_fault_t device_private_entry_fault(struct vm_area_struct *vma, @@ -97,8 +95,8 @@ static void devm_memremap_pages_release( put_page(pfn_to_page(pfn)); /* pages are dead and unused, undo the arch mapping */ - align_start = res->start & ~(SECTION_SIZE - 1); - align_size = ALIGN(res->start + resource_size(res), SECTION_SIZE) + align_start = res->start & ~(PA_SECTION_SIZE - 1); + align_size = ALIGN(res->start + resource_size(res), PA_SECTION_SIZE) - align_start; nid = page_to_nid(pfn_to_page(align_start >> PAGE_SHIFT)); @@ -159,8 +157,8 @@ void *devm_memremap_pages(struct device if (!pgmap->ref || !pgmap->kill) return ERR_PTR(-EINVAL); - align_start = res->start & ~(SECTION_SIZE - 1); - align_size = ALIGN(res->start + resource_size(res), SECTION_SIZE) + align_start = res->start & ~(PA_SECTION_SIZE - 1); + align_size = ALIGN(res->start + resource_size(res), PA_SECTION_SIZE) - align_start; align_end = align_start + align_size - 1; --- a/mm/hmm.c~mm-memremap-rename-and-consolidate-section_size +++ a/mm/hmm.c @@ -34,8 +34,6 @@ #include <linux/mmu_notifier.h> #include <linux/memory_hotplug.h> -#define PA_SECTION_SIZE (1UL << PA_SECTION_SHIFT) - #if IS_ENABLED(CONFIG_HMM_MIRROR) static const struct mmu_notifier_ops hmm_mmu_notifier_ops; _ Patches currently in -mm which might be from robin.murphy@xxxxxxx are mm-memremap-rename-and-consolidate-section_size.patch mm-clean-up-is_device__page-definitions.patch mm-introduce-arch_has_pte_devmap.patch arm64-mm-implement-pte_devmap-support.patch arm64-mm-implement-pte_devmap-support-fix.patch