Re: [PATCH v9 09/27] sfc: request cxl ram resource

Alejandro Lucero Palau
2025-01-20T16:00:31Z

On 1/18/25 01:58, Dan Williams wrote:
> alejandro.lucero-palau@ wrote:
>> From: Alejandro Lucero <alucerop@amd.com>
>>
>> Use cxl accessor for obtaining the ram resource the device advertises.
>>
>> Signed-off-by: Alejandro Lucero <alucerop@amd.com>
>> Reviewed-by: Martin Habets <habetsm.xilinx@gmail.com>
>> Reviewed-by: Fan Ni <fan.ni@samsung.com>
>> Acked-by: Edward Cree <ecree.xilinx@gmail.com>
>> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>> ---
>> drivers/net/ethernet/sfc/efx_cxl.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/net/ethernet/sfc/efx_cxl.c b/drivers/net/ethernet/sfc/efx_cxl.c
>> index 29368d010adc..2031f08ee689 100644
>> --- a/drivers/net/ethernet/sfc/efx_cxl.c
>> +++ b/drivers/net/ethernet/sfc/efx_cxl.c
>> @@ -85,6 +85,12 @@ int efx_cxl_init(struct efx_probe_data *probe_data)
>> goto err_resource_set;
>> }
>>
>> + rc = cxl_request_resource(cxl->cxlds, CXL_RES_RAM);
>> + if (rc) {
>> + pci_err(pci_dev, "CXL request resource failed");
>> + goto err_resource_set;
>> + }
>> +
>> probe_data->cxl = cxl;
>>
>> return 0;
>> @@ -99,6 +105,7 @@ int efx_cxl_init(struct efx_probe_data *probe_data)
>> void efx_cxl_exit(struct efx_probe_data *probe_data)
>> {
>> if (probe_data->cxl) {
>> + cxl_release_resource(probe_data->cxl->cxlds, CXL_RES_RAM);
> Given that the DPA layout is a static property of 'struct cxl_dev_state'
> once set there is no need to release it. Notice how there is no release
> in the memdev case either. The 'release' is freeing @cxlds.
>
> Now, any DPA reservations from that partition need to be released, but
> those releases are with respect to cxl_dpa_{alloc,free}().

Yes, it is now all more clear after the "DPA layout mess" work-in-progress.

I'll drop the release_resource in patch 8.

Thanks