Re: [PATCH] cxl/hdm: dev_warn() on unsupported mixed mode decoder

From: Jonathan Cameron
Date: Mon Feb 20 2023 - 09:31:22 EST


On Fri, 17 Feb 2023 17:38:34 -0800
alison.schofield@xxxxxxxxx wrote:

> From: Alison Schofield <alison.schofield@xxxxxxxxx>
>
> A mixed mode decoder is programmed with device physical addresses
> that span both ram and pmem partitions of a memdev.
>
> Linux does not support mixed mode decoders. The driver rejects
> sysfs writes that try to set decoder mode to mixed, and if a
> resource bieng allocated is not wholly contained in either the
> pmem or ram partition of a memdev, it is also rejected. Basically,
> the CXL region driver is not going to create regions with mixed
> mode decoders, but the BIOS could.
>
> If the kernel driver sees the mixed mode decoder, it will fail to
> enable the region, and emit a dev_dbg() message.
>
> A dev_dbg() is not noisy enough in this case. Change the message
> to be a dev_warn() that explicitly says mixed mode is not supported.
>
> Suggested-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> Signed-off-by: Alison Schofield <alison.schofield@xxxxxxxxx>
Makes sense.
FWIW
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> ---
> drivers/cxl/core/hdm.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/cxl/core/hdm.c b/drivers/cxl/core/hdm.c
> index 45deda18ed32..9eaf93c8ebb0 100644
> --- a/drivers/cxl/core/hdm.c
> +++ b/drivers/cxl/core/hdm.c
> @@ -294,8 +294,8 @@ static int __cxl_dpa_reserve(struct cxl_endpoint_decoder *cxled,
> else if (resource_contains(&cxlds->ram_res, res))
> cxled->mode = CXL_DECODER_RAM;
> else {
> - dev_dbg(dev, "decoder%d.%d: %pr mixed\n", port->id,
> - cxled->cxld.id, cxled->dpa_res);
> + dev_warn(dev, "decoder%d.%d: %pr mixed mode not supported\n",
> + port->id, cxled->cxld.id, cxled->dpa_res);
> cxled->mode = CXL_DECODER_MIXED;
> }
>
>
> base-commit: a5fcd228ca1db9810ba1ed461c90b6ee933b9daf