Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp1718192pxb; Wed, 9 Feb 2022 03:02:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJwqoZ71T5DiWXaSL0/E8g1gwb4MuVqqgfi0rxX37+IWTjFNxxbeSfC3kLD2WhnBWVhvNu7d X-Received: by 2002:a17:90a:5d01:: with SMTP id s1mr1910700pji.154.1644404552658; Wed, 09 Feb 2022 03:02:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644404552; cv=none; d=google.com; s=arc-20160816; b=Ubhf6a00Dbj1fZ6VwdZ3t5Uocawsm/lxYpLYJdEWItmLTQfQN2iHJxxvg3NrjT8498 ZEHaOXce4GnjX6S8Ued/0tsktJ/Ei6Q2QVDVIZldpOs3iGRejir/5CqBVxsNWH35N25U dP7cVxSQRL6NiZN5aXieyjP1jRuC2VYyxmBsMESn2EvUxyyD0jtpKMTNrPlJTuHhaMlw wCkuKZSVoPW1IzGofG/8rUss4cysT7HWGPGYej2ceECs8bBxu+bBgTQm9tAUlnYYZooJ V0YM7X7DD2O3aboRwZSj8LBS/1YzZRcDYplP+YopjZO4mBn6aDTK7HdWEauTtKRkv1Op IPHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=srqNW1EcIXWSL3YA9DB/cq+5wKzOkrj3L8GZFZFPp88=; b=BerFqC7JZ/zMGgNag4ggYeo27ymcl8QRIj8taT70PxxrmCDs0k/+qOBoWkqnORmSux slM++VYXgfmvUnfhA3/k9L8MGTGHh2SloB2CmoDS2Vf0/YJvDE+nktRr3+d9wEy0MHyr GWvY8SLQ9BzoDAhl5Zh5TsQG11aFd+vM/sum8DJZ8ZwQo4jseo3462ugGiJWxQWwYY9I 8q6Y6W7rwK6RLmI+S8S2uq4F/gqfK6t1HiS+WuFOWxCvAoCgiS55FIB+ZNtDZaOS0yPI C66GvMYh5a/S/qHaAHTE6/Rtzbf2wwRzq+f1WVTSEIg+AB253bZt8aUReJq3ODsapIgQ /OKA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel-com.20210112.gappssmtp.com header.s=20210112 header.b=01MLVSpG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1: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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id x8si14340134pll.329.2022.02.09.03.02.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 03:02:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel-com.20210112.gappssmtp.com header.s=20210112 header.b=01MLVSpG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1: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: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 77401E0C5BE9; Wed, 9 Feb 2022 01:30:56 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242617AbiBHBFd (ORCPT + 99 others); Mon, 7 Feb 2022 20:05:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46190 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242570AbiBGXtY (ORCPT ); Mon, 7 Feb 2022 18:49:24 -0500 Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 925F9C061355 for ; Mon, 7 Feb 2022 15:49:23 -0800 (PST) Received: by mail-pj1-x1033.google.com with SMTP id my12-20020a17090b4c8c00b001b528ba1cd7so869873pjb.1 for ; Mon, 07 Feb 2022 15:49:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=srqNW1EcIXWSL3YA9DB/cq+5wKzOkrj3L8GZFZFPp88=; b=01MLVSpGJcOLNshddxkhtSXXihKsoNqdx5vMNxTFv6bN6BYo1SzUvt/9GrJao02HnF Hb+sjT0ujjyEhZBcYaEd66uhrH2U82Bpll97CF5ng/E4ARrZPgn+43XxHckYHlvbZ2cV f+jtU4mZKMkJCdUAiiqidQXrgC4Uo9dYltnKCJah1zHCywOpfDTIJzzdLCdSte1qGkst 3TMcL8koigGPS26Czk0t/YynCFMadqyzQa7PlOBrn/XujPHTtuWh/oT8H0p3MLl7Uhro o0Gdsh8bSiaHc0CBUQxnZNfGeQPOMJTi12vYqWQkg/+GUCDwEzHRF9C80zL1n7F4WwGt uBog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=srqNW1EcIXWSL3YA9DB/cq+5wKzOkrj3L8GZFZFPp88=; b=tTKVdqOO31lwQT6umVUxBpmP694J4t0y51ENtyjevNAxiQfQx9ienyMDaCk3AXQqzc fz7y1WnJ7NnIuVUy+yAZDl039rl514OTJQGkscSdBsZkpkiC2k61pXWyq7HGv94Ce6lg 9KE0BoSWhGm8mEUF4I2f0hOxLjGYl0BnONCB9CP0jprPzFpGYpsGtQlGcm5+sHTyNxqs u9M4IVzmBrP6NmUB/xa6+fRTpeDziRnJhoJ1sHFsyQsGXZux7CX8HSML1DS1XH5ZgQo3 sNvjVnVwKNZlFrnqClPyQtUnL7HqTqhZATyHRt25yRJA9B+uIGmDpNcsTSI8quG+bCrC I2aw== X-Gm-Message-State: AOAM531DAyUnehS7wKuzVA5TrfN8GpDUd8k2Qcd3yNlo49RyCk1b5x2C 9+oT3JNkGZsJeNIj+ucm+KkV8DlJSo1CN1rH/lXL5g== X-Received: by 2002:a17:902:ccce:: with SMTP id z14mr1978185ple.34.1644277763021; Mon, 07 Feb 2022 15:49:23 -0800 (PST) MIME-Version: 1.0 References: <20220207063249.1833066-1-hch@lst.de> <20220207063249.1833066-7-hch@lst.de> In-Reply-To: <20220207063249.1833066-7-hch@lst.de> From: Dan Williams Date: Mon, 7 Feb 2022 15:49:12 -0800 Message-ID: Subject: Re: [PATCH 6/8] mm: don't include in To: Christoph Hellwig Cc: Andrew Morton , Felix Kuehling , Alex Deucher , =?UTF-8?Q?Christian_K=C3=B6nig?= , "Pan, Xinhui" , Ben Skeggs , Karol Herbst , Lyude Paul , Jason Gunthorpe , Alistair Popple , Logan Gunthorpe , Ralph Campbell , Linux Kernel Mailing List , amd-gfx list , Maling list - DRI developers , nouveau@lists.freedesktop.org, Linux NVDIMM , Linux MM Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Feb 6, 2022 at 10:33 PM Christoph Hellwig wrote: > > Move the check for the actual pgmap types that need the free at refcount > one behavior into the out of line helper, and thus avoid the need to > pull memremap.h into mm.h. Looks good to me assuming the compile bots agree. Reviewed-by: Dan Williams > > Signed-off-by: Christoph Hellwig > --- > arch/arm64/mm/mmu.c | 1 + > drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 1 + > drivers/gpu/drm/drm_cache.c | 2 +- > drivers/gpu/drm/nouveau/nouveau_dmem.c | 1 + > drivers/gpu/drm/nouveau/nouveau_svm.c | 1 + > drivers/infiniband/core/rw.c | 1 + > drivers/nvdimm/pmem.h | 1 + > drivers/nvme/host/pci.c | 1 + > drivers/nvme/target/io-cmd-bdev.c | 1 + > fs/fuse/virtio_fs.c | 1 + > include/linux/memremap.h | 18 ++++++++++++++++++ > include/linux/mm.h | 20 -------------------- > lib/test_hmm.c | 1 + > mm/memremap.c | 6 +++++- > 14 files changed, 34 insertions(+), 22 deletions(-) > > diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c > index acfae9b41cc8c9..580abae6c0b93f 100644 > --- a/arch/arm64/mm/mmu.c > +++ b/arch/arm64/mm/mmu.c > @@ -17,6 +17,7 @@ > #include > #include > #include > +#include > #include > #include > #include > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/= amdkfd/kfd_priv.h > index ea68f3b3a4e9cb..6d643b4b791d87 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h > @@ -25,6 +25,7 @@ > > #include > #include > +#include > #include > #include > #include > diff --git a/drivers/gpu/drm/drm_cache.c b/drivers/gpu/drm/drm_cache.c > index f19d9acbe95936..50b8a088f763a6 100644 > --- a/drivers/gpu/drm/drm_cache.c > +++ b/drivers/gpu/drm/drm_cache.c > @@ -27,11 +27,11 @@ > /* > * Authors: Thomas Hellstr=C3=B6m > */ > - > #include > #include > #include > #include > +#include > #include > > #include > diff --git a/drivers/gpu/drm/nouveau/nouveau_dmem.c b/drivers/gpu/drm/nou= veau/nouveau_dmem.c > index e886a3b9e08c7d..a5cdfbe32b5e54 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_dmem.c > +++ b/drivers/gpu/drm/nouveau/nouveau_dmem.c > @@ -39,6 +39,7 @@ > > #include > #include > +#include > #include > > /* > diff --git a/drivers/gpu/drm/nouveau/nouveau_svm.c b/drivers/gpu/drm/nouv= eau/nouveau_svm.c > index 266809e511e2c1..090b9b47708cca 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_svm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_svm.c > @@ -35,6 +35,7 @@ > #include > #include > #include > +#include > #include > > struct nouveau_svm { > diff --git a/drivers/infiniband/core/rw.c b/drivers/infiniband/core/rw.c > index 5a3bd41b331c93..4d98f931a13ddd 100644 > --- a/drivers/infiniband/core/rw.c > +++ b/drivers/infiniband/core/rw.c > @@ -2,6 +2,7 @@ > /* > * Copyright (c) 2016 HGST, a Western Digital Company. > */ > +#include > #include > #include > #include > diff --git a/drivers/nvdimm/pmem.h b/drivers/nvdimm/pmem.h > index 59cfe13ea8a85c..1f51a23614299b 100644 > --- a/drivers/nvdimm/pmem.h > +++ b/drivers/nvdimm/pmem.h > @@ -3,6 +3,7 @@ > #define __NVDIMM_PMEM_H__ > #include > #include > +#include > #include > #include > #include > diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c > index 6a99ed68091589..ab15bc72710dbe 100644 > --- a/drivers/nvme/host/pci.c > +++ b/drivers/nvme/host/pci.c > @@ -15,6 +15,7 @@ > #include > #include > #include > +#include > #include > #include > #include > diff --git a/drivers/nvme/target/io-cmd-bdev.c b/drivers/nvme/target/io-c= md-bdev.c > index 70ca9dfc1771a9..a141446db1bea3 100644 > --- a/drivers/nvme/target/io-cmd-bdev.c > +++ b/drivers/nvme/target/io-cmd-bdev.c > @@ -6,6 +6,7 @@ > #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt > #include > #include > +#include > #include > #include "nvmet.h" > > diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c > index 9d737904d07c0b..86b7dbb6a0d43e 100644 > --- a/fs/fuse/virtio_fs.c > +++ b/fs/fuse/virtio_fs.c > @@ -8,6 +8,7 @@ > #include > #include > #include > +#include > #include > #include > #include > diff --git a/include/linux/memremap.h b/include/linux/memremap.h > index 1fafcc38acbad6..514ab46f597e5c 100644 > --- a/include/linux/memremap.h > +++ b/include/linux/memremap.h > @@ -1,6 +1,8 @@ > /* SPDX-License-Identifier: GPL-2.0 */ > #ifndef _LINUX_MEMREMAP_H_ > #define _LINUX_MEMREMAP_H_ > + > +#include > #include > #include > #include > @@ -129,6 +131,22 @@ static inline unsigned long pgmap_vmemmap_nr(struct = dev_pagemap *pgmap) > return 1 << pgmap->vmemmap_shift; > } > > +static inline bool is_device_private_page(const struct page *page) > +{ > + return IS_ENABLED(CONFIG_DEV_PAGEMAP_OPS) && > + IS_ENABLED(CONFIG_DEVICE_PRIVATE) && > + is_zone_device_page(page) && > + page->pgmap->type =3D=3D MEMORY_DEVICE_PRIVATE; > +} > + > +static inline bool is_pci_p2pdma_page(const struct page *page) > +{ > + return IS_ENABLED(CONFIG_DEV_PAGEMAP_OPS) && > + IS_ENABLED(CONFIG_PCI_P2PDMA) && > + is_zone_device_page(page) && > + page->pgmap->type =3D=3D MEMORY_DEVICE_PCI_P2PDMA; > +} > + > #ifdef CONFIG_ZONE_DEVICE > void *memremap_pages(struct dev_pagemap *pgmap, int nid); > void memunmap_pages(struct dev_pagemap *pgmap); > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 26baadcef4556b..80fccfe31c3444 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -23,7 +23,6 @@ > #include > #include > #include > -#include > #include > #include > #include > @@ -1101,9 +1100,6 @@ static inline bool put_devmap_managed_page(struct p= age *page) > return false; > if (!is_zone_device_page(page)) > return false; > - if (page->pgmap->type !=3D MEMORY_DEVICE_PRIVATE && > - page->pgmap->type !=3D MEMORY_DEVICE_FS_DAX) > - return false; > return __put_devmap_managed_page(page); > } > > @@ -1114,22 +1110,6 @@ static inline bool put_devmap_managed_page(struct = page *page) > } > #endif /* CONFIG_DEV_PAGEMAP_OPS */ > > -static inline bool is_device_private_page(const struct page *page) > -{ > - return IS_ENABLED(CONFIG_DEV_PAGEMAP_OPS) && > - IS_ENABLED(CONFIG_DEVICE_PRIVATE) && > - is_zone_device_page(page) && > - page->pgmap->type =3D=3D MEMORY_DEVICE_PRIVATE; > -} > - > -static inline bool is_pci_p2pdma_page(const struct page *page) > -{ > - return IS_ENABLED(CONFIG_DEV_PAGEMAP_OPS) && > - IS_ENABLED(CONFIG_PCI_P2PDMA) && > - is_zone_device_page(page) && > - page->pgmap->type =3D=3D MEMORY_DEVICE_PCI_P2PDMA; > -} > - > /* 127: arbitrary random number, small enough to assemble well */ > #define folio_ref_zero_or_close_to_overflow(folio) \ > ((unsigned int) folio_ref_count(folio) + 127u <=3D 127u) > diff --git a/lib/test_hmm.c b/lib/test_hmm.c > index 396beee6b061d4..e5fc14ba71f33e 100644 > --- a/lib/test_hmm.c > +++ b/lib/test_hmm.c > @@ -12,6 +12,7 @@ > #include > #include > #include > +#include > #include > #include > #include > diff --git a/mm/memremap.c b/mm/memremap.c > index f41233a67edb12..a0ece2344c2cab 100644 > --- a/mm/memremap.c > +++ b/mm/memremap.c > @@ -4,7 +4,7 @@ > #include > #include > #include > -#include > +#include > #include > #include > #include > @@ -504,6 +504,10 @@ void free_devmap_managed_page(struct page *page) > > bool __put_devmap_managed_page(struct page *page) > { > + if (page->pgmap->type !=3D MEMORY_DEVICE_PRIVATE && > + page->pgmap->type !=3D MEMORY_DEVICE_FS_DAX) > + return false; > + > /* > * devmap page refcounts are 1-based, rather than 0-based: if > * refcount is 1, then the page is free and the refcount is > -- > 2.30.2 >