[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260108104352.000079c3@huawei.com>
Date: Thu, 8 Jan 2026 10:43:52 +0000
From: Jonathan Cameron <jonathan.cameron@...wei.com>
To: John Groves <John@...ves.net>
CC: Miklos Szeredi <miklos@...redi.hu>, Dan Williams
<dan.j.williams@...el.com>, Bernd Schubert <bschubert@....com>, "Alison
Schofield" <alison.schofield@...el.com>, John Groves <jgroves@...ron.com>,
Jonathan Corbet <corbet@....net>, Vishal Verma <vishal.l.verma@...el.com>,
Dave Jiang <dave.jiang@...el.com>, Matthew Wilcox <willy@...radead.org>, Jan
Kara <jack@...e.cz>, Alexander Viro <viro@...iv.linux.org.uk>, "David
Hildenbrand" <david@...nel.org>, Christian Brauner <brauner@...nel.org>,
"Darrick J . Wong" <djwong@...nel.org>, Randy Dunlap <rdunlap@...radead.org>,
Jeff Layton <jlayton@...nel.org>, Amir Goldstein <amir73il@...il.com>, Stefan
Hajnoczi <shajnocz@...hat.com>, Joanne Koong <joannelkoong@...il.com>, Josef
Bacik <josef@...icpanda.com>, Bagas Sanjaya <bagasdotme@...il.com>, Chen
Linxuan <chenlinxuan@...ontech.com>, "James Morse" <james.morse@....com>,
Fuad Tabba <tabba@...gle.com>, "Sean Christopherson" <seanjc@...gle.com>,
Shivank Garg <shivankg@....com>, Ackerley Tng <ackerleytng@...gle.com>,
Gregory Price <gourry@...rry.net>, Aravind Ramesh <arramesh@...ron.com>, Ajay
Joshi <ajayjoshi@...ron.com>, <venkataravis@...ron.com>,
<linux-doc@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<nvdimm@...ts.linux.dev>, <linux-cxl@...r.kernel.org>,
<linux-fsdevel@...r.kernel.org>
Subject: Re: [PATCH V3 01/21] dax: move dax_pgoff_to_phys from
[drivers/dax/] device.c to bus.c
On Wed, 7 Jan 2026 09:33:10 -0600
John Groves <John@...ves.net> wrote:
> 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 <john@...ves.net>
Hi John,
I don't know the code well enough to offer an opinion on whether this
move causes any issues or if this is the best location, so review is superficial
stuff only.
Jonathan
> ---
> 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 <linux/slab.h>
> #include <linux/dax.h>
> #include <linux/io.h>
> +#include <linux/backing-dev.h>
I'm not immediately spotting why this one. Maybe should be in a different
patch?
> +#include <linux/range.h>
> +#include <linux/uio.h>
Why this one?
Style wise, dax seems to use reverse xmas tree for includes, so
this should keep to that.
> #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 */
Bonus space before that */
Curiously that wasn't there in the original.
> +__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)
> {
Powered by blists - more mailing lists