From mboxrd@z Thu Jan 1 00:00:00 1970 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 9C42F36CDEF 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=1767800028; cv=none; b=eYghGQDjvp3vK/oiuRyq0XLqatSSNpfYkPKkXPqXNMd81oR9HUPYiRVZV2TIVB8JTwNmsNvi9xJD4pM6HK3qUheaNAIFRqHc1T2Ilj7Qr2Uox6EAePzzyu9YhFkRzLQMtjCwU1wsrMaJVJpgeMcayarSnbnSfdVXcJe+NAfiGq8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767800028; c=relaxed/simple; bh=NuWusZLC5UQlkk7hlcFERKM1c2CGKJNdml11bqf0XyQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ecXX14VzbS5Jm5s9NDlPhkBVFy4l88zk+0LbNw+6Hj0Altm6I43Bj319pmzrb33RyZRBaJw4Uid1xkEAblkpshlyhnry3KXm6muTZhNCyfM8S6DC1RUbI4wd1y9QeRrx231by/IE+8vxqVrPW2RucqoV16HvTZzp00aUa06WALQ= 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-45392215f74so1095275b6e.3 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=Q4AGYvnx+GMvzq9bpfSZdvwgJ0560lv9ACzGPhd8E8ODPtosBx+e907fBwXXluc6/4 ZF/cSfUzP6mFozm3LITxk7FAwz+C2xc2j1Gt4v8nP74cvxQlBDmQvWkBY4jy2grwj9cg xqFjR/fiicLhE/GzBW3pJM30wzMKbGHLze4Ft4+/PWJSO05ZorgkNRgSzhZcaLJXTBoM M4ocaaIkYUqqzxU3hK8EAI3MGu/5UGdS3PNnHb7Bp0VZmMmehUAYrcmT43DtQqlnnyXg Gxl9KC9bI0k+DpGDsQ13VpFZqKmkcdLzrn8pciGdDU+QyNvfXW42sBazhJImlVueVU5z FCjg== X-Forwarded-Encrypted: i=1; AJvYcCVd76g8Spc0BH+wH+B6cCfQbFMgGr/I+wVZNmWUWBwShcZkpYKTpwbnSMjMTnTUbESecQNtKX5cV6w=@vger.kernel.org X-Gm-Message-State: AOJu0YxPhLC7hilsmMc2F5BWeTXBlTpjABDFoMX4gh3MmO42Yx6MHNNp QecwNoC2Eapl/m3rPhYKM3dugSVnvQM+0qRf4l7csHY0peFmCg9Gq7tM X-Gm-Gg: AY/fxX6vuFXyKwEomkhpvzSWUjFUjZTfIeex5Ceva8XbmYBINtiBmpz3qMh7yG1WiRv qy3W/bFnl19x1k0KFHOsnscbOxDOXihMbXh5ATisdeWZ0LyswehM/umZFWtDoZxyRHycfCzLQsh GYUVdFe8L2WFRigieJlfVa2ngmukW7vONptcbcXMSIcHQw0cxuVdsHhm82ehphW9vAcvuAJX4AD rp6hax3OathEn82O9C80Wdxag2oGtT4EO2MuJOw2vIQx0WR1IybpFM6cWW35m1k1/kwlij9LfGy ivVqTZBOVU5iHbvw9oldt5ZRisR7j3OA8lWh1n4Bf5uSEEW7F0TS8+D3HDaiPdc+hbreVakJxJP x+L4/MKigVrCcc+rCQahw5+5MpUoR2XJ6/HWlC5zFu1g7O1+256d8u4tgz28OMpTpiPdafbud8a lfWz9afphbYlfqT9rqRj8RJLwiRdYtZhjDc9dfHZYxDlso 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-doc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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" @@ -1417,6 +1420,30 @@ static const struct device_type dev_dax_type = { .groups = dax_attribute_groups, }; +/* 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 pgoff, + unsigned long size) +{ + int i; + + for (i = 0; i < dev_dax->nr_range; i++) { + struct dev_dax_range *dax_range = &dev_dax->ranges[i]; + struct range *range = &dax_range->range; + unsigned long long pgoff_end; + phys_addr_t phys; + + pgoff_end = dax_range->pgoff + PHYS_PFN(range_len(range)) - 1; + if (pgoff < dax_range->pgoff || pgoff > pgoff_end) + continue; + phys = PFN_PHYS(pgoff - dax_range->pgoff) + range->start; + if (phys + size - 1 <= 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 = 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); } -/* 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 pgoff, - unsigned long size) -{ - int i; - - for (i = 0; i < dev_dax->nr_range; i++) { - struct dev_dax_range *dax_range = &dev_dax->ranges[i]; - struct range *range = &dax_range->range; - unsigned long long pgoff_end; - phys_addr_t phys; - - pgoff_end = dax_range->pgoff + PHYS_PFN(range_len(range)) - 1; - if (pgoff < dax_range->pgoff || pgoff > pgoff_end) - continue; - phys = PFN_PHYS(pgoff - dax_range->pgoff) + range->start; - if (phys + size - 1 <= range->end) - return phys; - break; - } - return -1; -} - static void dax_set_mapping(struct vm_fault *vmf, unsigned long pfn, unsigned long fault_size) { -- 2.49.0