Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1392794pxk; Fri, 25 Sep 2020 13:36:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyn7rHJDE6EP0NR8gxk7Nco6YLprekp/x/+ZNp7/e1wDIS54gq5x8WDf/VwV/G6toMEgZ1i X-Received: by 2002:a17:906:4c81:: with SMTP id q1mr4443745eju.72.1601066178913; Fri, 25 Sep 2020 13:36:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601066178; cv=none; d=google.com; s=arc-20160816; b=CCbmjEU0m5xSZMVZfSSn0t98V6r5df+y1SDlF80UqiT5tfqc/H1pxhxU8nzLdSHpnS 3ntM/mVf8XW9StzDAlQFscR7OmlHXtBsM18FWHfWOxrtTs3Q0kc+keRt2S/KyXp6ki1s XUYzHqflDHJZYwoS0ttHh4aby5xuLBLyHvrMb3XADk+TdaBW8PpwflFevgxgDnbyYSCp cnP2T+2zghOpFAGTO/rSdJHeESt2UA0nnUTg4ihdkdb/Ma/v9CWlVsRsTrklSc+60/wy 79N44+0hubFvHyFyVjaAbdpPF2oSOD5TBncSJ4a2Erw2Wzc0VSvuombpydekvwkP15Vt 3txg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:cc:to:from :subject:ironport-sdr:ironport-sdr; bh=qSrI3VQ5y0girg60CTA1X1itJQhng8Gh4nUQbHGbd0E=; b=Nn9muzAKmqTzQF89map20+aWvCgshhDKiBTlAMnN2xMhJSSgLOaUC8jCVzoWa563VJ dy7UWzYj8+invjZaFR1A4mchb2d8vIw6mf2JOLvO/iW6UIWpB4lT92ROkebgg8EJjWpk mYaRfXCQVwpXbxs0B5tnRzk9RX9nv5CZWqs8uf+eEKmxVjKUHurz1tjqBEtgKWw3ZyZg XIZAzJEH39hPy1HSASrS6BL7S60Ymv+TbjWEPgKGnXYFCQNkM5W+OggOyMLb1TR0Bcx1 9IHXfY+Vr2X2Evq21jMRjgWHWOcKN5o7dKcb7AKK8hEw7BUSFZevlf7pKeSB50GSmGuz J1KA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g23si2603999ejo.16.2020.09.25.13.35.56; Fri, 25 Sep 2020 13:36:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729181AbgIYUdw (ORCPT + 99 others); Fri, 25 Sep 2020 16:33:52 -0400 Received: from mga02.intel.com ([134.134.136.20]:18583 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726849AbgIYUaW (ORCPT ); Fri, 25 Sep 2020 16:30:22 -0400 IronPort-SDR: Ed710ABGmZdlJkY/C8WiZhVlUq3UyPY50sC6LNNEDP0u4HAVZL2PmqQXc+OmnWz0XXTvgii6+a 5LvkBKp67oAQ== X-IronPort-AV: E=McAfee;i="6000,8403,9755"; a="149272051" X-IronPort-AV: E=Sophos;i="5.77,303,1596524400"; d="scan'208";a="149272051" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Sep 2020 12:30:23 -0700 IronPort-SDR: ysA/Rkwzd/BphO4dBoKfduaGz2F+AyB+jqp6/pz6QtLPZmAY58Z5zcYyJUL5ZuH6lQgKzOvTHo fS3QzxV1hL2w== X-IronPort-AV: E=Sophos;i="5.77,303,1596524400"; d="scan'208";a="348515408" Received: from dwillia2-desk3.jf.intel.com (HELO dwillia2-desk3.amr.corp.intel.com) ([10.54.39.16]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Sep 2020 12:30:23 -0700 Subject: [PATCH v5 04/17] device-dax/kmem: replace release_resource() with release_mem_region() From: Dan Williams To: akpm@linux-foundation.org Cc: David Hildenbrand , Vishal Verma , Dave Hansen , Pavel Tatashin , Brice Goglin , Dave Jiang , David Hildenbrand , Ira Weiny , Jia He , Joao Martins , Jonathan Cameron , linux-mm@kvack.org, linux-nvdimm@lists.01.org, linux-kernel@vger.kernel.org Date: Fri, 25 Sep 2020 12:12:02 -0700 Message-ID: <160106112239.30709.15909567572288425294.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: <160106109960.30709.7379926726669669398.stgit@dwillia2-desk3.amr.corp.intel.com> References: <160106109960.30709.7379926726669669398.stgit@dwillia2-desk3.amr.corp.intel.com> User-Agent: StGit/0.18-3-g996c MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Towards removing the mode specific @dax_kmem_res attribute from the generic 'struct dev_dax', and preparing for multi-range support, change the kmem driver to use the idiomatic release_mem_region() to pair with the initial request_mem_region(). This also eliminates the need to open code the release of the resource allocated by request_mem_region(). As there are no more dax_kmem_res users, delete this struct member. Cc: David Hildenbrand Cc: Vishal Verma Cc: Dave Hansen Cc: Pavel Tatashin Cc: Brice Goglin Cc: Dave Jiang Cc: David Hildenbrand Cc: Ira Weiny Cc: Jia He Cc: Joao Martins Cc: Jonathan Cameron Signed-off-by: Dan Williams --- drivers/dax/dax-private.h | 3 --- drivers/dax/kmem.c | 20 +++++++------------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/drivers/dax/dax-private.h b/drivers/dax/dax-private.h index 6779f683671d..12a2dbc43b40 100644 --- a/drivers/dax/dax-private.h +++ b/drivers/dax/dax-private.h @@ -42,8 +42,6 @@ struct dax_region { * @dev - device core * @pgmap - pgmap for memmap setup / lifetime (driver owned) * @range: resource range for the instance - * @dax_mem_res: physical address range of hotadded DAX memory - * @dax_mem_name: name for hotadded DAX memory via add_memory_driver_managed() */ struct dev_dax { struct dax_region *region; @@ -52,7 +50,6 @@ struct dev_dax { struct device dev; struct dev_pagemap *pgmap; struct range range; - struct resource *dax_kmem_res; }; static inline u64 range_len(struct range *range) diff --git a/drivers/dax/kmem.c b/drivers/dax/kmem.c index 6fe2cb1c5f7c..e56fc688bdc5 100644 --- a/drivers/dax/kmem.c +++ b/drivers/dax/kmem.c @@ -33,7 +33,7 @@ int dev_dax_kmem_probe(struct device *dev) { struct dev_dax *dev_dax = to_dev_dax(dev); struct range range = dax_kmem_range(dev_dax); - struct resource *new_res; + struct resource *res; char *res_name; int numa_node; int rc; @@ -56,8 +56,8 @@ int dev_dax_kmem_probe(struct device *dev) return -ENOMEM; /* Region is permanently reserved if hotremove fails. */ - new_res = request_mem_region(range.start, range_len(&range), res_name); - if (!new_res) { + res = request_mem_region(range.start, range_len(&range), res_name); + if (!res) { dev_warn(dev, "could not reserve region [%#llx-%#llx]\n", range.start, range.end); kfree(res_name); return -EBUSY; @@ -69,23 +69,20 @@ int dev_dax_kmem_probe(struct device *dev) * inherit flags from the parent since it may set new flags * unknown to us that will break add_memory() below. */ - new_res->flags = IORESOURCE_SYSTEM_RAM; + res->flags = IORESOURCE_SYSTEM_RAM; /* * Ensure that future kexec'd kernels will not treat this as RAM * automatically. */ - rc = add_memory_driver_managed(numa_node, new_res->start, - resource_size(new_res), kmem_name); + rc = add_memory_driver_managed(numa_node, range.start, range_len(&range), kmem_name); if (rc) { - release_resource(new_res); - kfree(new_res); + release_mem_region(range.start, range_len(&range)); kfree(res_name); return rc; } dev_set_drvdata(dev, res_name); - dev_dax->dax_kmem_res = new_res; return 0; } @@ -95,7 +92,6 @@ static int dev_dax_kmem_remove(struct device *dev) { struct dev_dax *dev_dax = to_dev_dax(dev); struct range range = dax_kmem_range(dev_dax); - struct resource *res = dev_dax->dax_kmem_res; const char *res_name = dev_get_drvdata(dev); int rc; @@ -114,10 +110,8 @@ static int dev_dax_kmem_remove(struct device *dev) } /* Release and free dax resources */ - release_resource(res); - kfree(res); + release_mem_region(range.start, range_len(&range)); kfree(res_name); - dev_dax->dax_kmem_res = NULL; return 0; }