Re: [PATCH] cxl/acpi: Warn on unsupported platform config detection
From: Fabio M. De Francesco
Date: Wed Jun 26 2024 - 06:34:54 EST
On Wednesday, June 26, 2024 1:14:18 AM GMT+2 Dan Williams wrote:
Hi Dan,
> Fabio M. De Francesco wrote:
> > Each Host Bridge instance has a corresponding CXL Host Bridge Structure
> > (CHBS) ACPI table that identifies its capabilities. CHBS tables can be
> > two types: RCRB and CHBCR.
> >
> > If a Host Bridge is attached to a device that is operating in Restricted
> > CXL Device Mode (RCD), BIOS publishes an RCRB with the base address of
> > registers that describe its capabilities.
> >
> > However, the new (CXL 2.0+) Component registers (e.g., Extended Security
> > Capability), can only be accessed by means of a base address published
> > with a CHBCR.
> >
> > An algorithm to locate a CHBCR associated with an RCRB would be too
> > invasive to land without some concrete motivation.
> >
> > Therefore, just print a message to inform of unsupported config.
> >
> > Count how many different CHBS "Version" types are detected by
> > cxl_get_chbs_iter(). Then make cxl_get_chbs() print a warning if that sum
> > is greater than 1.
> >
> > Signed-off-by: Fabio M. De Francesco <fabio.m.de.francesco@xxxxxxxxxxxxxxx>
> > ---
> > drivers/cxl/acpi.c | 20 ++++++++++++++------
> > 1 file changed, 14 insertions(+), 6 deletions(-)
> >
snip
> > @@ -533,6 +537,10 @@ static int cxl_get_chbs(struct device *dev, struct
acpi_device *hb,
> >
> > acpi_table_parse_cedt(ACPI_CEDT_TYPE_CHBS, cxl_get_chbs_iter,
ctx);
> >
> > + if (ctx->count > 1)
> > + /* Disclaim eRCD support given some component register
may only be found via CHBCR */
> > + dev_info(dev, "Unsupported platform config, mixed
Virtual Host and Restricted CXL Host hierarchy.");
>
> I believe this is already queued, but my personal preference is that
> multiline statements include brackets, or move the comment above the "if
> ()", so either:
>
> /* Disclaim eRCD support given some component register may only be
found via CHBCR */
> if (ctx->count > 1)
> dev_info(dev, "Unsupported platform config, mixed Virtual
Host and Restricted CXL Host hierarchy.");
>
> ...or:
>
> if (ctx->count > 1) {
> /* Disclaim eRCD support given some component register
may only be found via CHBCR */
> dev_info(dev, "Unsupported platform config, mixed Virtual
Host and Restricted CXL Host hierarchy.");
> }
>
> ...but don't spin the patch just for that fixup.
>
I'll send v2 mainly for Alison's comments and so I will also add brackets here
(the second solution meets my preferences).
Thank you,
Fabio