On Thu, 29 Jan 2026 16:04:38 -0500
Gregory Price <[email protected]> wrote:

> Move the pmem region driver logic from region.c into pmem_region.c.

Needs to answer the question: Why?

> 
> No functional changes.
> 
> Signed-off-by: Gregory Price <[email protected]>
> ---
Minor stuff inline.

> diff --git a/drivers/cxl/core/pmem_region.c b/drivers/cxl/core/pmem_region.c
> new file mode 100644
> index 000000000000..81b66e548bb5
> --- /dev/null
> +++ b/drivers/cxl/core/pmem_region.c
> @@ -0,0 +1,191 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/* Copyright(c) 2022 Intel Corporation. All rights reserved. */
> +#include <linux/device.h>
> +#include <linux/slab.h>
> +#include <cxlmem.h>
> +#include <cxl.h>
> +#include "core.h"
> +
> +static void cxl_pmem_region_release(struct device *dev)
> +{
> +     struct cxl_pmem_region *cxlr_pmem = to_cxl_pmem_region(dev);
> +     int i;
> +
> +     for (i = 0; i < cxlr_pmem->nr_mappings; i++) {
> +             struct cxl_memdev *cxlmd = cxlr_pmem->mapping[i].cxlmd;
> +
> +             put_device(&cxlmd->dev);
> +     }
> +
> +     kfree(cxlr_pmem);
> +}
> +
> +static const struct attribute_group *cxl_pmem_region_attribute_groups[] = {
> +     &cxl_base_attribute_group,
> +     NULL,
Maybe sneak in dropping that trailing comma whilst you are moving it.
> +};

> +/**
> + * devm_cxl_add_pmem_region() - add a cxl_region-to-nd_region bridge
> + * @cxlr: parent CXL region for this pmem region bridge device
> + *
> + * Return: 0 on success negative error code on failure.
> + */
> +int devm_cxl_add_pmem_region(struct cxl_region *cxlr)
> +{
...

> +     /* @cxlr carries a reference on @cxl_nvb until cxlr_release_nvdimm */
> +     return devm_add_action_or_reset(&cxlr->dev, cxlr_release_nvdimm, cxlr);
> +
> +err:
> +     put_device(dev);
> +err_bridge:
> +     put_device(&cxl_nvb->dev);
> +     cxlr->cxl_nvb = NULL;
> +     return rc;
> +}
> +
> +
Bonus line...

> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c



Reply via email to