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 |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Guessing tree name failed - patch did not apply |
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 > >
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 >
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 > >
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 --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); }