On Mon, 06 Feb 2023 13:51:46 -0700 Dave Jiang <dave.jiang@xxxxxxxxx> wrote: > The CDAT data is only valid after the hardware signals the media is ready. > Move the reading to after cxl_await_media_ready() has succeeded. > > Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx> Fix? Though I doubt we care about backporting this one as until after this patch series, CDAT was mostly informational so hopefully no one relies on it. Jonathan > --- > drivers/cxl/port.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/cxl/port.c b/drivers/cxl/port.c > index b7a4a1be2945..6b2ad22487f5 100644 > --- a/drivers/cxl/port.c > +++ b/drivers/cxl/port.c > @@ -91,9 +91,6 @@ static int cxl_port_probe(struct device *dev) > struct cxl_memdev *cxlmd = to_cxl_memdev(port->uport); > struct cxl_dev_state *cxlds = cxlmd->cxlds; > > - /* Cache the data early to ensure is_visible() works */ > - read_cdat_data(port); > - > get_device(&cxlmd->dev); > rc = devm_add_action_or_reset(dev, schedule_detach, cxlmd); > if (rc) > @@ -109,6 +106,8 @@ static int cxl_port_probe(struct device *dev) > return rc; > } > > + /* Cache the data early to ensure is_visible() works */ > + read_cdat_data(port); > if (port->cdat.table) { > rc = cdat_table_parse_dsmas(port->cdat.table, > cxl_dsmas_parse_entry, > >