From nobody Mon Feb 9 17:21:55 2026 Received: from mail-oi1-f182.google.com (mail-oi1-f182.google.com [209.85.167.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9C33E35773A for ; Wed, 7 Jan 2026 15:33:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767800029; cv=none; b=ZPur9fCwfuuM2vBuwTOvoAmN9CkX4V+tSNXTjD3U6eQ9ky7xy5/vxefNxl74zWZuZbMOHyTRh2P62Lt4GICqnqVvKvK0koynkSBuNhl9oQz+vVaoU/PiVSioHeLcS6g9RDUAtTEZueHjZc582iLRtXTUSYDnTYEGOEwnekcuCBs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767800029; c=relaxed/simple; bh=NuWusZLC5UQlkk7hlcFERKM1c2CGKJNdml11bqf0XyQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZfHyqWcByAvOX2LXz3sQAzPfBKBFH2XOlLiKHLNv2Xvb3q+GJ3Q90KkArR5QkzEWSxNbChD9OGNd5rNw9eiRbBbp02j4eQRwGX3zhhfWboFROf8Xq1IF8SncP56PbieWehWEfL7sGqRYLyjrZvi+V/BEG8ZMoK0/Ie80rZc1Hp4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=Groves.net; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Hurcpro+; arc=none smtp.client-ip=209.85.167.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=Groves.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Hurcpro+" Received: by mail-oi1-f182.google.com with SMTP id 5614622812f47-459993ff4fcso916854b6e.1 for ; Wed, 07 Jan 2026 07:33:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767800025; x=1768404825; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=PmVFHvoo6qZY7RUGgdXNII0ab/XeZ6ETTaZK349UK+g=; b=Hurcpro+8LEtZ49Fvgl+naOUniaWSrr/jLSb8QJPmUHiYENbE0g0KrAFu25i91KrFP F717IoaxWysjYc99rZofw7HUlRRbcOiAOpnZMoIprDKPFaCQXEF4raacQxZb2jwrwMHv A5BPNjgo0p5Epru9PkGls/pD3t4qcIjyc/z3dARYelhNNqmNnAaYBvS1VZw4rw0SNJvz Ytw6LQAQDSg0diXBAUDlIbq97k3cDYRX64HyTPsL/M9Acnx9JX4bBVvSbxVvNt+F1shE gejKbtEcnf0PXEeVv1FO2oSoq+rFsNKxBT1WcY2fhmEvUFAE8y/Pdx1GF/quZi9JDls/ jSoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767800025; x=1768404825; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=PmVFHvoo6qZY7RUGgdXNII0ab/XeZ6ETTaZK349UK+g=; b=u3V4Axiezc1M/clKt8ibC2XMeLXrc3C10BaQszCiyqLjSzej/hkUkFVFMRKofkjiLV GKXC6wZh6CtdRBhjIvnzEfcC2yPik8V+0lAZEHKOzWys4CJlMTBM41hKORlJplE+14YO dEzVC7prkP0oQLNkuTct22duXmuL1r2LbVY6JozKYTiqiLJDf+YxWqCAYi6mKYyWfxwY /08vR/w4RqekJwRknChLRXEe0ONtc3Cr5s9lPk+RsVJi+FiaGRo/4cgfVk1uViHn36XQ GlrEvJWNe7m6FakuSj+pAca2c7VtAHX5uEVD5riNWNQL5LSl0tS7LFGz0Do/dpgzPytA iISA== X-Forwarded-Encrypted: i=1; AJvYcCWI7EAjW4Qr5jBeOeSPe5vP6uSyhxOGSD8Rk3wgl+WnUhiQcyWbFWKeZ+wlRSFTcoLTdM2yBk4Bd1/JZ4g=@vger.kernel.org X-Gm-Message-State: AOJu0YxkS4OWkqw86bMv0GJarT5AoLtnvGSVtF2Hi4cyw7iqw3TcZU7n Op1rUmNvZST/My5abQDhHNe2b9KUnkUVFvEv2SASnnTK/ZtCsrZlVMDE X-Gm-Gg: AY/fxX5Og6lTqJmIyR9N64z8coSofoFyV9dZt8S3fTQCvPIcC2YmCmMBsj5b5puBTSN HvdCIeOapNjTVDkqi4a0PIddrMgpyQBM/1SaI7ZM28A80tISVFbK8oiEzp/6DoHz5y5bcBH8+h0 Fm9LA23OFBVxu5NGgP5SCfGO9tp8rzO79/OGV7v9Fu1ePnjWBCmsNKB5vo9E2jq30J6aY/vryJ9 NPliTLq8/zUpl5rFBIgUXfivKFUCD83KhIML7Li+DnNBw2icKAOrEebTLGPCLOZUH85lYCNTk4k Zc865aLIryQ5YdMYhXKCIpzZiCp9nYghFvMcWtBD0hTxaIxrUwVt7tUpE+Rbq/Eti2LgMYgQzd/ nyOYf+PdIb3qFLbOb/7gi0JpvgbviTnyy3Ioco1kJKjqpxGlt5InkfrWbNwsvVIaI4PvyYHqOj9 6eIQFL7A7xEGy4O5WSPA7G/qunpJNiJaqsNY8l4K9hQBNc X-Google-Smtp-Source: AGHT+IHkLI2SMyhkKOgLjFmL6YFwT+7moAdIUHTTTIFi2bmiuCeEJRn6ElXDVg0S7UXRPCs1iwtC5Q== X-Received: by 2002:a05:6808:c2d8:b0:45a:5584:b84d with SMTP id 5614622812f47-45a6bebe564mr1179771b6e.32.1767800025297; Wed, 07 Jan 2026 07:33:45 -0800 (PST) Received: from localhost.localdomain ([2603:8080:1500:3d89:a917:5124:7300:7cef]) by smtp.gmail.com with ESMTPSA id 5614622812f47-45a5e2f1de5sm2398106b6e.22.2026.01.07.07.33.43 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 07 Jan 2026 07:33:44 -0800 (PST) Sender: John Groves From: John Groves X-Google-Original-From: John Groves To: John Groves , Miklos Szeredi , Dan Williams , Bernd Schubert , Alison Schofield Cc: John Groves , Jonathan Corbet , Vishal Verma , Dave Jiang , Matthew Wilcox , Jan Kara , Alexander Viro , David Hildenbrand , Christian Brauner , "Darrick J . Wong" , Randy Dunlap , Jeff Layton , Amir Goldstein , Jonathan Cameron , Stefan Hajnoczi , Joanne Koong , Josef Bacik , Bagas Sanjaya , Chen Linxuan , James Morse , Fuad Tabba , Sean Christopherson , Shivank Garg , Ackerley Tng , Gregory Price , Aravind Ramesh , Ajay Joshi , venkataravis@micron.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-fsdevel@vger.kernel.org, John Groves Subject: [PATCH V3 01/21] dax: move dax_pgoff_to_phys from [drivers/dax/] device.c to bus.c Date: Wed, 7 Jan 2026 09:33:10 -0600 Message-ID: <20260107153332.64727-2-john@groves.net> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260107153332.64727-1-john@groves.net> References: <20260107153244.64703-1-john@groves.net> <20260107153332.64727-1-john@groves.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This function will be used by both device.c and fsdev.c, but both are loadable modules. Moving to bus.c puts it in core and makes it available to both. No code changes - just relocated. Signed-off-by: John Groves --- drivers/dax/bus.c | 27 +++++++++++++++++++++++++++ drivers/dax/device.c | 23 ----------------------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c index fde29e0ad68b..a2f9a3cc30a5 100644 --- a/drivers/dax/bus.c +++ b/drivers/dax/bus.c @@ -7,6 +7,9 @@ #include #include #include +#include +#include +#include #include "dax-private.h" #include "bus.h" =20 @@ -1417,6 +1420,30 @@ static const struct device_type dev_dax_type =3D { .groups =3D dax_attribute_groups, }; =20 +/* see "strong" declaration in tools/testing/nvdimm/dax-dev.c */ +__weak phys_addr_t dax_pgoff_to_phys(struct dev_dax *dev_dax, pgoff_t pgof= f, + unsigned long size) +{ + int i; + + for (i =3D 0; i < dev_dax->nr_range; i++) { + struct dev_dax_range *dax_range =3D &dev_dax->ranges[i]; + struct range *range =3D &dax_range->range; + unsigned long long pgoff_end; + phys_addr_t phys; + + pgoff_end =3D dax_range->pgoff + PHYS_PFN(range_len(range)) - 1; + if (pgoff < dax_range->pgoff || pgoff > pgoff_end) + continue; + phys =3D PFN_PHYS(pgoff - dax_range->pgoff) + range->start; + if (phys + size - 1 <=3D range->end) + return phys; + break; + } + return -1; +} +EXPORT_SYMBOL_GPL(dax_pgoff_to_phys); + static struct dev_dax *__devm_create_dev_dax(struct dev_dax_data *data) { struct dax_region *dax_region =3D data->dax_region; diff --git a/drivers/dax/device.c b/drivers/dax/device.c index 22999a402e02..132c1d03fd07 100644 --- a/drivers/dax/device.c +++ b/drivers/dax/device.c @@ -57,29 +57,6 @@ static int check_vma(struct dev_dax *dev_dax, struct vm_= area_struct *vma, vma->vm_file, func); } =20 -/* see "strong" declaration in tools/testing/nvdimm/dax-dev.c */ -__weak phys_addr_t dax_pgoff_to_phys(struct dev_dax *dev_dax, pgoff_t pgof= f, - unsigned long size) -{ - int i; - - for (i =3D 0; i < dev_dax->nr_range; i++) { - struct dev_dax_range *dax_range =3D &dev_dax->ranges[i]; - struct range *range =3D &dax_range->range; - unsigned long long pgoff_end; - phys_addr_t phys; - - pgoff_end =3D dax_range->pgoff + PHYS_PFN(range_len(range)) - 1; - if (pgoff < dax_range->pgoff || pgoff > pgoff_end) - continue; - phys =3D PFN_PHYS(pgoff - dax_range->pgoff) + range->start; - if (phys + size - 1 <=3D range->end) - return phys; - break; - } - return -1; -} - static void dax_set_mapping(struct vm_fault *vmf, unsigned long pfn, unsigned long fault_size) { --=20 2.49.0