Re: [PATCH] cxl/core: Check existence of cxl_memdev_state in poison test

Alejandro Lucero Palau
2026-03-31T05:58:48Z

Hi Allison,

I think the introduction of type2 is weakening some assumptions of the
core design, and this check is another example after similar ones added
for type2. Not sure how this could be addressed properly, so I will look
at how to make this integration seamless.

By now, as this check is necessary, at least as a sanity check:

Reviewed-by: Alejandro Lucero <alucerop@amd.com>

On 3/31/26 01:50, Alison Schofield wrote:
> Before now, all CXL memdevs were assumed to have a mailbox-backed
> cxl_memdev_state, so poison command checks could safely dereference
> the @mds.
>
> With the introduction of Type 2 devices, a memdev may not implement
> a mailbox interface, and so there is no associated cxl_memdev_state.
> Guard against this case by returning false when @mds is absent.
>
> Signed-off-by: Alison Schofield <alison.schofield@intel.com>
> ---
> drivers/cxl/core/memdev.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/cxl/core/memdev.c b/drivers/cxl/core/memdev.c
> index 273c22118d3d..591425866045 100644
> --- a/drivers/cxl/core/memdev.c
> +++ b/drivers/cxl/core/memdev.c
> @@ -204,6 +204,9 @@ bool cxl_memdev_has_poison_cmd(struct cxl_memdev *cxlmd,
> {
> struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
>
> + if (!mds)
> + return 0;
> +
> return test_bit(cmd, mds->poison.enabled_cmds);
> }
>