From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f200.google.com (mail-pf0-f200.google.com [209.85.192.200]) by kanga.kvack.org (Postfix) with ESMTP id E1A006B0006 for ; Wed, 23 May 2018 01:20:26 -0400 (EDT) Received: by mail-pf0-f200.google.com with SMTP id j14-v6so12423535pfn.11 for ; Tue, 22 May 2018 22:20:26 -0700 (PDT) Received: from mga01.intel.com (mga01.intel.com. [192.55.52.88]) by mx.google.com with ESMTPS id j10-v6si17917471plg.396.2018.05.22.22.20.25 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 May 2018 22:20:25 -0700 (PDT) Subject: [PATCH v2 2/7] mm, devm_memremap_pages: Kill mapping "System RAM" support From: Dan Williams Date: Tue, 22 May 2018 22:10:28 -0700 Message-ID: <152705222840.21414.15768182848742318988.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: <152705221686.21414.771870778478134768.stgit@dwillia2-desk3.amr.corp.intel.com> References: <152705221686.21414.771870778478134768.stgit@dwillia2-desk3.amr.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Sender: owner-linux-mm@kvack.org List-ID: To: akpm@linux-foundation.org Cc: Christoph Hellwig , =?utf-8?b?SsOpcsO0bWU=?= Glisse , Logan Gunthorpe , linux-mm@kvack.org, linux-kernel@vger.kernel.org Given the fact that devm_memremap_pages() requires a percpu_ref that is torn down by devm_memremap_pages_release() the current support for mapping RAM is broken. This has been broken since forever and there is no use case to map RAM in this way, so just kill the support and make it an explicit error. Cc: Christoph Hellwig Cc: "JA(C)rA'me Glisse" Cc: Logan Gunthorpe Signed-off-by: Dan Williams --- kernel/memremap.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/kernel/memremap.c b/kernel/memremap.c index c614645227a7..dd11607671eb 100644 --- a/kernel/memremap.c +++ b/kernel/memremap.c @@ -355,15 +355,12 @@ void *devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) is_ram = region_intersects(align_start, align_size, IORESOURCE_SYSTEM_RAM, IORES_DESC_NONE); - if (is_ram == REGION_MIXED) { - WARN_ONCE(1, "%s attempted on mixed region %pr\n", - __func__, res); + if (is_ram != REGION_DISJOINT) { + WARN_ONCE(1, "%s attempted on %s region %pr\n", __func__, + is_ram == REGION_MIXED ? "mixed" : "ram", res); return ERR_PTR(-ENXIO); } - if (is_ram == REGION_INTERSECTS) - return __va(res->start); - if (!pgmap->ref) return ERR_PTR(-EINVAL);