Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1976197yba; Tue, 2 Apr 2019 21:32:07 -0700 (PDT) X-Google-Smtp-Source: APXvYqyVKaZY02Eb5WVpy9OcJ5k2uqZGKZf38veWUj35OLoOd7KzYiBbhcw59P60avjYcHWbEGu8 X-Received: by 2002:a62:a515:: with SMTP id v21mr65959587pfm.41.1554265927613; Tue, 02 Apr 2019 21:32:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554265927; cv=none; d=google.com; s=arc-20160816; b=COthTgG+2P3mT6YARKe3UzQJzLrMGgzh9dvjj8sCKK1/Z18bTqkA1Wmwl8xX7FX6rz oMyA/CLX510L4Cj/Y4WEdHfJ5wQXFN/TbHGD0/sBLulakYOT80ViIK+u58V4EOVOiwgz GqWVx64iHH07yEYmgNcBphPcRrda7uNBsinZtbKSeVWUiqo2r+Z/G563HZ7SIqfT8u8k HByZkG5zrAhZlpa64Gn7rbZrEnw1N9TtVusU57sUaSXsRapZmGfBxjksGXt5WhJP1muV l42QXYRhxJ+A2tS7sclVB7pNkjwt9Dd9MLmoUY3Gmu+sqEezVb3qRadvuiyvrZK+voIK Jj2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=EkSxpVM4Bmt2ySq+et1fZS12TxWCefQIMkki4BSNv7E=; b=iJkG0z1UKLym9j8IfxEQB/nbFqWlannX3k2xytQmplafu2xPb/35tZrXmaSww81lrU re8+oaV1IJyLQRU4rUwJJo69AxCN5V8rTpL/L3vpZcJ3kZ4aNZPW7tMH7ikYrzNcUMvo zAppd3gceIh3QcFc7kzfRQVmV/O9B0TrVipAA/47XzoIU0Qpz8MolyqwhqdAj5oeY1y4 /jStTw0zuP9oQAaBSq+Q/XdmwvT6Y+N4U37+P4//qy171q3Y3zvB44Ync1Uz3HxBYhBQ CFms+21sr4Nnfzn3zZrvvNb/aaHh7OKW9A1ajLb/C/c33x0DQ7glte8VxXGq38bzpm3T nv5Q== 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 n15si12555685pgv.398.2019.04.02.21.31.52; Tue, 02 Apr 2019 21:32:07 -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 S1728627AbfDCEan (ORCPT + 99 others); Wed, 3 Apr 2019 00:30:43 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:60394 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728526AbfDCEan (ORCPT ); Wed, 3 Apr 2019 00:30:43 -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 7FAC780D; Tue, 2 Apr 2019 21:30:42 -0700 (PDT) Received: from p8cg001049571a15.arm.com (unknown [10.163.1.97]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 0E79E3F721; Tue, 2 Apr 2019 21:30:36 -0700 (PDT) From: Anshuman Khandual To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, akpm@linux-foundation.org, will.deacon@arm.com, catalin.marinas@arm.com Cc: mhocko@suse.com, mgorman@techsingularity.net, james.morse@arm.com, mark.rutland@arm.com, robin.murphy@arm.com, cpandya@codeaurora.org, arunks@codeaurora.org, dan.j.williams@intel.com, osalvador@suse.de, logang@deltatee.com, pasha.tatashin@oracle.com, david@redhat.com, cai@lca.pw Subject: [PATCH 5/6] mm/memremap: Rename and consolidate SECTION_SIZE Date: Wed, 3 Apr 2019 10:00:05 +0530 Message-Id: <1554265806-11501-6-git-send-email-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1554265806-11501-1-git-send-email-anshuman.khandual@arm.com> References: <1554265806-11501-1-git-send-email-anshuman.khandual@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Robin Murphy Enabling ZONE_DEVICE (through ARCH_HAS_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 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. While here consolidate single instance of PA_SECTION_SIZE from mm/hmm.c as well. [anshuman: Consolidated mm/hmm.c instance and updated the commit message] 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 fba7741..ed7dd27 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 a856cb5..dda1367 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 fe1cd87..ef9e4e6 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.7.4