Message ID | 20241216161042.42108-25-alejandro.lucero-palau@amd.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | cxl: add type2 device basic support | expand |
On Mon, 16 Dec 2024 16:10:39 +0000 <alejandro.lucero-palau@amd.com> wrote: > From: Alejandro Lucero <alucerop@amd.com> > > Use cxl api for creating a region using the endpoint decoder related to > a DPA range specifying no DAX device should be created. > > Signed-off-by: Alejandro Lucero <alucerop@amd.com> > Reviewed-by: Martin Habets <habetsm.xilinx@gmail.com> > Acked-by: Edward Cree <ecree.xilinx@gmail.com> Other than the question of whether the no_dax flag is useful LGTM Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > --- > drivers/net/ethernet/sfc/efx_cxl.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/net/ethernet/sfc/efx_cxl.c b/drivers/net/ethernet/sfc/efx_cxl.c > index 724bca59b4d4..7367ba28a40f 100644 > --- a/drivers/net/ethernet/sfc/efx_cxl.c > +++ b/drivers/net/ethernet/sfc/efx_cxl.c > @@ -129,10 +129,19 @@ int efx_cxl_init(struct efx_probe_data *probe_data) > goto err_memdev; > } > > + cxl->efx_region = cxl_create_region(cxl->cxlrd, cxl->cxled, true); > + if (IS_ERR(cxl->efx_region)) { > + pci_err(pci_dev, "CXL accel create region failed"); > + rc = PTR_ERR(cxl->efx_region); > + goto err_region; > + } > + > probe_data->cxl = cxl; > > return 0; > > +err_region: > + cxl_dpa_free(cxl->cxled); > err_memdev: > cxl_release_resource(cxl->cxlds, CXL_RES_RAM); > err_resource_set: > @@ -145,6 +154,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_accel_region_detach(probe_data->cxl->cxled); > cxl_dpa_free(probe_data->cxl->cxled); > cxl_release_resource(probe_data->cxl->cxlds, CXL_RES_RAM); > kfree(probe_data->cxl->cxlds);
Hi, kernel test robot noticed the following build errors: [auto build test ERROR on fac04efc5c793dccbd07e2d59af9f90b7fc0dca4] url: https://github.com/intel-lab-lkp/linux/commits/alejandro-lucero-palau-amd-com/cxl-add-type2-device-basic-support/20241217-001923 base: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4 patch link: https://lore.kernel.org/r/20241216161042.42108-25-alejandro.lucero-palau%40amd.com patch subject: [PATCH v8 24/27] sfc: create cxl region config: x86_64-randconfig-071-20241225 (https://download.01.org/0day-ci/archive/20241226/202412260756.QZSthKpJ-lkp@intel.com/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241226/202412260756.QZSthKpJ-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202412260756.QZSthKpJ-lkp@intel.com/ All errors (new ones prefixed by >>): ld: drivers/net/ethernet/sfc/efx_cxl.o: in function `efx_cxl_init': drivers/net/ethernet/sfc/efx_cxl.c:107: undefined reference to `cxl_get_hpa_freespace' >> ld: drivers/net/ethernet/sfc/efx_cxl.c:132: undefined reference to `cxl_create_region' ld: drivers/net/ethernet/sfc/efx_cxl.o: in function `efx_cxl_exit': >> drivers/net/ethernet/sfc/efx_cxl.c:157: undefined reference to `cxl_accel_region_detach'
diff --git a/drivers/net/ethernet/sfc/efx_cxl.c b/drivers/net/ethernet/sfc/efx_cxl.c index 724bca59b4d4..7367ba28a40f 100644 --- a/drivers/net/ethernet/sfc/efx_cxl.c +++ b/drivers/net/ethernet/sfc/efx_cxl.c @@ -129,10 +129,19 @@ int efx_cxl_init(struct efx_probe_data *probe_data) goto err_memdev; } + cxl->efx_region = cxl_create_region(cxl->cxlrd, cxl->cxled, true); + if (IS_ERR(cxl->efx_region)) { + pci_err(pci_dev, "CXL accel create region failed"); + rc = PTR_ERR(cxl->efx_region); + goto err_region; + } + probe_data->cxl = cxl; return 0; +err_region: + cxl_dpa_free(cxl->cxled); err_memdev: cxl_release_resource(cxl->cxlds, CXL_RES_RAM); err_resource_set: @@ -145,6 +154,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_accel_region_detach(probe_data->cxl->cxled); cxl_dpa_free(probe_data->cxl->cxled); cxl_release_resource(probe_data->cxl->cxlds, CXL_RES_RAM); kfree(probe_data->cxl->cxlds);