diff mbox series

[v6,09/28] sfc: request cxl ram resource

Message ID 20241202171222.62595-10-alejandro.lucero-palau@amd.com (mailing list archive)
State Superseded
Delegated to: Netdev Maintainers
Headers show
Series cxl: add type2 device basic support | expand

Checks

Context Check Description
netdev/tree_selection success Guessing tree name failed - patch did not apply

Commit Message

Lucero Palau, Alejandro Dec. 2, 2024, 5:12 p.m. UTC
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>
---
 drivers/net/ethernet/sfc/efx_cxl.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Martin Habets Dec. 3, 2024, 2:25 p.m. UTC | #1
On Mon, Dec 02, 2024 at 05:12:03PM +0000, alejandro.lucero-palau@amd.com 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>

> ---
>  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 44e1061feba1..76ce4c2e587b 100644
> --- a/drivers/net/ethernet/sfc/efx_cxl.c
> +++ b/drivers/net/ethernet/sfc/efx_cxl.c
> @@ -84,6 +84,12 @@ int efx_cxl_init(struct efx_probe_data *probe_data)
>  		goto err2;
>  	}
>  
> +	rc = cxl_request_resource(cxl->cxlds, CXL_RES_RAM);
> +	if (rc) {
> +		pci_err(pci_dev, "CXL request resource failed");
> +		goto err2;
> +	}
> +
>  	probe_data->cxl = cxl;
>  
>  	return 0;
> @@ -98,6 +104,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);
>  		kfree(probe_data->cxl->cxlds);
>  		kfree(probe_data->cxl);
>  	}
> -- 
> 2.17.1
> 
>
Fan Ni Dec. 6, 2024, 4:10 a.m. UTC | #2
On Mon, Dec 02, 2024 at 05:12:03PM +0000, alejandro.lucero-palau@amd.com 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: Fan Ni <fan.ni@samsung.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 44e1061feba1..76ce4c2e587b 100644
> --- a/drivers/net/ethernet/sfc/efx_cxl.c
> +++ b/drivers/net/ethernet/sfc/efx_cxl.c
> @@ -84,6 +84,12 @@ int efx_cxl_init(struct efx_probe_data *probe_data)
>  		goto err2;
>  	}
>  
> +	rc = cxl_request_resource(cxl->cxlds, CXL_RES_RAM);
> +	if (rc) {
> +		pci_err(pci_dev, "CXL request resource failed");
> +		goto err2;
> +	}
> +
>  	probe_data->cxl = cxl;
>  
>  	return 0;
> @@ -98,6 +104,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);
>  		kfree(probe_data->cxl->cxlds);
>  		kfree(probe_data->cxl);
>  	}
> -- 
> 2.17.1
>
Kalesh Anakkur Purayil Dec. 6, 2024, 4:28 a.m. UTC | #3
On Mon, Dec 2, 2024 at 10:44 PM <alejandro.lucero-palau@amd.com> 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>
> ---
>  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 44e1061feba1..76ce4c2e587b 100644
> --- a/drivers/net/ethernet/sfc/efx_cxl.c
> +++ b/drivers/net/ethernet/sfc/efx_cxl.c
> @@ -84,6 +84,12 @@ int efx_cxl_init(struct efx_probe_data *probe_data)
>                 goto err2;
>         }
>
> +       rc = cxl_request_resource(cxl->cxlds, CXL_RES_RAM);
> +       if (rc) {
> +               pci_err(pci_dev, "CXL request resource failed");
In case of failure, cxl_request_resource() logs an error message.
Hence do you really need this duplicate log?
> +               goto err2;
> +       }
> +
>         probe_data->cxl = cxl;
>
>         return 0;
> @@ -98,6 +104,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);
>                 kfree(probe_data->cxl->cxlds);
>                 kfree(probe_data->cxl);
>         }
> --
> 2.17.1
>
>
Alejandro Lucero Palau Dec. 9, 2024, 9:12 a.m. UTC | #4
On 12/6/24 04:28, Kalesh Anakkur Purayil wrote:
> On Mon, Dec 2, 2024 at 10:44 PM <alejandro.lucero-palau@amd.com> 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>
>> ---
>>   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 44e1061feba1..76ce4c2e587b 100644
>> --- a/drivers/net/ethernet/sfc/efx_cxl.c
>> +++ b/drivers/net/ethernet/sfc/efx_cxl.c
>> @@ -84,6 +84,12 @@ int efx_cxl_init(struct efx_probe_data *probe_data)
>>                  goto err2;
>>          }
>>
>> +       rc = cxl_request_resource(cxl->cxlds, CXL_RES_RAM);
>> +       if (rc) {
>> +               pci_err(pci_dev, "CXL request resource failed");
> In case of failure, cxl_request_resource() logs an error message.
> Hence do you really need this duplicate log?


It could be seen as a duplicate, but with potential concurrent cxl 
devices initializing, this one helps to figure out which pci device is 
linked to.

So I think it is good to keep it and it does not harm after all.

Thanks


>> +               goto err2;
>> +       }
>> +
>>          probe_data->cxl = cxl;
>>
>>          return 0;
>> @@ -98,6 +104,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);
>>                  kfree(probe_data->cxl->cxlds);
>>                  kfree(probe_data->cxl);
>>          }
>> --
>> 2.17.1
>>
>>
>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/sfc/efx_cxl.c b/drivers/net/ethernet/sfc/efx_cxl.c
index 44e1061feba1..76ce4c2e587b 100644
--- a/drivers/net/ethernet/sfc/efx_cxl.c
+++ b/drivers/net/ethernet/sfc/efx_cxl.c
@@ -84,6 +84,12 @@  int efx_cxl_init(struct efx_probe_data *probe_data)
 		goto err2;
 	}
 
+	rc = cxl_request_resource(cxl->cxlds, CXL_RES_RAM);
+	if (rc) {
+		pci_err(pci_dev, "CXL request resource failed");
+		goto err2;
+	}
+
 	probe_data->cxl = cxl;
 
 	return 0;
@@ -98,6 +104,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);
 		kfree(probe_data->cxl->cxlds);
 		kfree(probe_data->cxl);
 	}