[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [RFC PATCH 2/5] cxl/core: introduce cxl_memdev_dpa_to_hpa()
From: |
Dan Williams |
Subject: |
RE: [RFC PATCH 2/5] cxl/core: introduce cxl_memdev_dpa_to_hpa() |
Date: |
Fri, 9 Feb 2024 22:39:37 -0800 |
Shiyang Ruan wrote:
> When a memdev is assigned to a region, its Device Physical Address will be
> mapped to Host Physical Address. Introduce this helper function to
> translate HPA from a given memdev and its DPA.
>
> Signed-off-by: Shiyang Ruan <ruansy.fnst@fujitsu.com>
> ---
> drivers/cxl/core/memdev.c | 12 ++++++++++++
> drivers/cxl/cxlmem.h | 1 +
> 2 files changed, 13 insertions(+)
>
> diff --git a/drivers/cxl/core/memdev.c b/drivers/cxl/core/memdev.c
> index dae8802ecdb0..c304e709ef0e 100644
> --- a/drivers/cxl/core/memdev.c
> +++ b/drivers/cxl/core/memdev.c
> @@ -319,6 +319,18 @@ static int cxl_validate_poison_dpa(struct cxl_memdev
> *cxlmd, u64 dpa)
> return 0;
> }
>
> +phys_addr_t cxl_memdev_dpa_to_hpa(struct cxl_memdev *cxlmd, u64 dpa)
> +{
> + struct cxl_region *cxlr = cxl_dpa_to_region(cxlmd, dpa);
> +
> + if (cxlr)
> + return cxlr->params.res->start + dpa;
> + else {
> + dev_dbg(&cxlmd->dev, "device belongs to no region.\n");
> + return 0;
> + }
> +}
Hmm no, I would not say memdevs are assigned to regions, *endpoint
decoders* are assigned to regions. cxl_dpa_to_region() is only an
internal helper when the endpoint decoder is unknown. Otherwise endpoint
decoders have a direct-link to their region, if mapped. See usage of
"cxled->cxld.region".
- [RFC PATCH SET] cxl: add poison event handler, Shiyang Ruan, 2024/02/09
- [RFC PATCH 5/5] cxl/core: add poison injection event handler, Shiyang Ruan, 2024/02/09
- [RFC PATCH 1/2] hw/cxl/type3: add missing flag bit for GMER, Shiyang Ruan, 2024/02/09
- [RFC PATCH 2/5] cxl/core: introduce cxl_memdev_dpa_to_hpa(), Shiyang Ruan, 2024/02/09
- RE: [RFC PATCH 2/5] cxl/core: introduce cxl_memdev_dpa_to_hpa(),
Dan Williams <=
- [RFC PATCH 3/5] cxl/core: introduce cxl_mem_report_poison(), Shiyang Ruan, 2024/02/09
- [RFC PATCH 1/5] cxl/core: correct length of DPA field masks, Shiyang Ruan, 2024/02/09
- [RFC PATCH 2/2] hw/cxl/type3: send a GMER while injecting poison, Shiyang Ruan, 2024/02/09
- [RFC PATCH 4/5] cxl/core: add report option for cxl_mem_get_poison(), Shiyang Ruan, 2024/02/09