Message ID | 20250107141015.3367194-23-rrichter@amd.com |
---|---|
State | New |
Headers | show |
Series | cxl: Add address translation support and enable AMD Zen5 platforms | expand |
On Tue, Jan 07, 2025 at 03:10:08PM +0100, Robert Richter wrote: > To create a region, SPA ranges must be used. With address translation > the endpoint's HPA range is not the same as the SPA range. Use the > previously calculated SPA range instead. > > Signed-off-by: Robert Richter <rrichter@amd.com> Patches 22-25 seem reliant on each other. Should I expect errors if I were to test them individually? The individual changes in 22-24 seem ok, but is spa->* expected to be correct in the absense of the PRMT translation functions when HPA==SPA? ~Gregory > --- > drivers/cxl/core/region.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c > index 681c26abc26e..e218f0be2409 100644 > --- a/drivers/cxl/core/region.c > +++ b/drivers/cxl/core/region.c > @@ -3424,7 +3424,7 @@ static struct cxl_region *construct_region(struct cxl_root_decoder *cxlrd, > { > struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); > struct cxl_port *port = cxlrd_to_port(cxlrd); > - struct range *hpa = &cxled->cxld.hpa_range; > + struct range *spa = &cxled->spa_range; > struct cxl_region_params *p; > struct cxl_region *cxlr; > struct resource *res; > @@ -3462,7 +3462,7 @@ static struct cxl_region *construct_region(struct cxl_root_decoder *cxlrd, > goto err; > } > > - *res = DEFINE_RES_MEM_NAMED(hpa->start, range_len(hpa), > + *res = DEFINE_RES_MEM_NAMED(spa->start, range_len(spa), > dev_name(&cxlr->dev)); > rc = insert_resource(cxlrd->res, res); > if (rc) { > -- > 2.39.5 >
diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c index 681c26abc26e..e218f0be2409 100644 --- a/drivers/cxl/core/region.c +++ b/drivers/cxl/core/region.c @@ -3424,7 +3424,7 @@ static struct cxl_region *construct_region(struct cxl_root_decoder *cxlrd, { struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); struct cxl_port *port = cxlrd_to_port(cxlrd); - struct range *hpa = &cxled->cxld.hpa_range; + struct range *spa = &cxled->spa_range; struct cxl_region_params *p; struct cxl_region *cxlr; struct resource *res; @@ -3462,7 +3462,7 @@ static struct cxl_region *construct_region(struct cxl_root_decoder *cxlrd, goto err; } - *res = DEFINE_RES_MEM_NAMED(hpa->start, range_len(hpa), + *res = DEFINE_RES_MEM_NAMED(spa->start, range_len(spa), dev_name(&cxlr->dev)); rc = insert_resource(cxlrd->res, res); if (rc) {
To create a region, SPA ranges must be used. With address translation the endpoint's HPA range is not the same as the SPA range. Use the previously calculated SPA range instead. Signed-off-by: Robert Richter <rrichter@amd.com> --- drivers/cxl/core/region.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)