Re: [PATCH 2/3] cxl: Set target type of region with that of root decoder

From: Alison Schofield
Date: Wed Jul 31 2024 - 22:14:59 EST


On Mon, Jul 29, 2024 at 04:46:10PM +0800, Ying Huang wrote:
> Now, the target type of region is hard-coded to HOSTONLYMEM, because
> only type3 expanders are supported. To support type2 accelerators,
> set the target type of region root decoder with that of the root
> decoder.

Hi Ying,

If the target type of a region is always the same as it's root decoder,
(is it?) why do we store it as an attribute of the region. Can we look
it up when needed?

A bit more below -

>
> Signed-off-by: "Huang, Ying" <ying.huang@xxxxxxxxx>
> Suggested-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
> Cc: Jonathan Cameron <jonathan.cameron@xxxxxxxxxx>
> Cc: Dave Jiang <dave.jiang@xxxxxxxxx>
> Cc: Alison Schofield <alison.schofield@xxxxxxxxx>
> Cc: Vishal Verma <vishal.l.verma@xxxxxxxxx>
> Cc: Ira Weiny <ira.weiny@xxxxxxxxx>
> Cc: Alejandro Lucero <alucerop@xxxxxxx>
> ---
> drivers/cxl/core/region.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index 21ad5f242875..9a483c8a32fd 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -2545,7 +2545,8 @@ static struct cxl_region *__create_region(struct cxl_root_decoder *cxlrd,
> return ERR_PTR(-EBUSY);
> }
>
> - return devm_cxl_add_region(cxlrd, id, mode, CXL_DECODER_HOSTONLYMEM);
> + return devm_cxl_add_region(cxlrd, id, mode,
> + cxlrd->cxlsd.cxld.target_type);
> }

Passing the 'cxlrd' and then a piece of the cxlrd (.target_type) looks
redundant.


-- Alison

>
> static ssize_t create_pmem_region_store(struct device *dev,
> --
> 2.39.2
>