Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp703799yba; Fri, 12 Apr 2019 11:58:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqwfllIupuKiHIhPOhqhGpEujshuD6+6q6dg0lK23tP4b7c7ySSjgUxmAqQ3r4HK70YeBy0b X-Received: by 2002:a63:6fcd:: with SMTP id k196mr54765626pgc.238.1555095497498; Fri, 12 Apr 2019 11:58:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555095497; cv=none; d=google.com; s=arc-20160816; b=WbH7GNY/ATJnzElgu/Vq7kWXsEmKtWkE5AUnS30QFSxTFaX8cfQUIGTvd23HXF2led IgjUCzFxKnAYi4HEtSotXTcut7WuUYcGVipj8U8VNeQusbFEKDB/lka+T/S3v9tdTYMm R8soSyz49d9Hh20bt53mVn31JjGoJGg1lqyQB4k9mLK6ZZOkokR1fmdD4z3B2IpaLmBc ebFKV+cLYDSy5Si+8UCr2NoSD7fRHIMBw37AdZEkmSRHIcWwpMAh404mmpPrer4r0aUl J0tiKM0shc30QMPOB8o12NVuwpP/m9NqcKmbGFum6GWmO058OFY3QapXbp7yAeEX8E6h BOkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=W8RImTT5/NuqjLVEjUkkWwa/kQ7S5eOStSkQSRaZDsM=; b=fukJmZw1hgi4SUy3llvavZncPMJ+Xs5VbOyItOOk1iBxjqHcxZAWxyCkLtFGdEOMwd eOBuIh7PuQ0jx1qgqqQY65s7Kg/A3LyF55kU1+5PgPw9atpLq7XYgRA46ZrpZBdQgslq xA7l1TVfW69jXN0LnaigMmwe6oQOOZkk/BQbD/NWn8yNe0ul+sIC2AnQl2rywRP8qWRm EqbK28TaW3vhEbmd5H+bpsgykfE0hQzAAMhLE116m9nWeFAJhbrB5bHdyV6D0n0XYWKi YV3h3wWV212UbMmxIBRNhdBmL8iU7+Bce7nmRE4rNtobcI9Akr+0Ms99oqV1RNjSPZAB 5NvQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z5si32969669pge.81.2019.04.12.11.58.01; Fri, 12 Apr 2019 11:58:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727154AbfDLS5Z (ORCPT + 99 others); Fri, 12 Apr 2019 14:57:25 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:38268 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726755AbfDLS5X (ORCPT ); Fri, 12 Apr 2019 14:57:23 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2FC1F15BE; Fri, 12 Apr 2019 11:57:23 -0700 (PDT) Received: from e110467-lin.cambridge.arm.com (e110467-lin.cambridge.arm.com [10.1.196.75]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 872D63F718; Fri, 12 Apr 2019 11:57:21 -0700 (PDT) From: Robin Murphy To: linux-mm@kvack.org Cc: dan.j.williams@intel.com, ira.weiny@intel.com, jglisse@redhat.com, ohall@gmail.com, x86@kernel.org, linuxppc-dev@lists.ozlabs.org, anshuman.khandual@arm.com, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] mm/memremap: Rename and consolidate SECTION_SIZE Date: Fri, 12 Apr 2019 19:56:00 +0100 Message-Id: <029d4af64642019a6d73c804d362d840f4eb0941.1555093412.git.robin.murphy@arm.com> X-Mailer: git-send-email 2.21.0.dirty In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Trying to activatee ZONE_DEVICE for arm64 reveals that memremap's internal helpers for sparsemem sections conflict with and 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: Consolidated mm/hmm.c instance and updated the commit message] Acked-by: Michal Hocko Reviewed-by: David Hildenbrand Signed-off-by: Robin Murphy Signed-off-by: Anshuman Khandual --- include/linux/mmzone.h | 1 + kernel/memremap.c | 10 ++++------ mm/hmm.c | 2 -- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index fba7741533be..ed7dd27ee94a 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -1081,6 +1081,7 @@ static inline unsigned long early_pfn_to_nid(unsigned long pfn) * 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) diff --git a/kernel/memremap.c b/kernel/memremap.c index a856cb5ff192..dda1367b385d 100644 --- a/kernel/memremap.c +++ b/kernel/memremap.c @@ -14,8 +14,6 @@ #include 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, @@ -98,8 +96,8 @@ static void devm_memremap_pages_release(void *data) 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)); @@ -154,8 +152,8 @@ void *devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) 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; diff --git a/mm/hmm.c b/mm/hmm.c index fe1cd87e49ac..ef9e4e6c9f92 100644 --- a/mm/hmm.c +++ b/mm/hmm.c @@ -33,8 +33,6 @@ #include #include -#define PA_SECTION_SIZE (1UL << PA_SECTION_SHIFT) - #if IS_ENABLED(CONFIG_HMM_MIRROR) static const struct mmu_notifier_ops hmm_mmu_notifier_ops; -- 2.21.0.dirty