Thanks Maxime
I am not totally sure that this actually got broken in the very commit you 
point to (I think that there was another pci generic commit which changed the 
assumption when this pointer was set), but it doesn't harm to change anyway for 
stable build. 
Note this is already like this in the new PMD acc100.

Acked-By: Nicolas Chautru <nicolas.chau...@intel.com>

> -----Original Message-----
> From: Maxime Coquelin <maxime.coque...@redhat.com>
> Sent: Tuesday, October 6, 2020 3:04 AM
> To: dev@dpdk.org; sta...@dpdk.org; Chautru, Nicolas
> <nicolas.chau...@intel.com>; t...@redhat.com
> Cc: Maxime Coquelin <maxime.coque...@redhat.com>
> Subject: [PATCH 1/2] baseband/fpga_5gnr_fec: fix segfaults with debug
> 
> When RTE_LIBRTE_BBDEV_DEBUG is enabled, rte_device's driver pointer is
> dereferenced twice in fpga_5gnr_fec's probe callback.
> It causes a segmentation fault because this pointer is only assigned after 
> probe
> callback call.
> 
> This patch makes use of rte_pci_driver pointer instead.
> 
> Fixes: 0b5927cbcba7 ("baseband/fpga_5gnr_fec: add PMD for FPGA 5GNR
> FEC")
> 
> Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com>
> ---
>  drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
> b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
> index 61f9c04ba2..11ee4d3e10 100644
> --- a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
> +++ b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
> @@ -1839,7 +1839,7 @@ fpga_5gnr_fec_init(struct rte_bbdev *dev, struct
> rte_pci_driver *drv)
> 
>       rte_bbdev_log_debug(
>                       "Init device %s [%s] @ virtaddr %p phyaddr %#"PRIx64,
> -                     dev->device->driver->name, dev->data->name,
> +                     drv->driver.name, dev->data->name,
>                       (void *)pci_dev->mem_resource[0].addr,
>                       pci_dev->mem_resource[0].phys_addr);
>  }
> @@ -1895,7 +1895,7 @@ fpga_5gnr_fec_probe(struct rte_pci_driver *pci_drv,
>               ((uint16_t)(version_id >> 16)), ((uint16_t)version_id));
> 
>  #ifdef RTE_LIBRTE_BBDEV_DEBUG
> -     if (!strcmp(bbdev->device->driver->name,
> +     if (!strcmp(pci_drv->driver.name,

Why do you have to change this one?

Acked-by: Nicolas Chautru <nicolas.chau...@intel.com>

>                       RTE_STR(FPGA_5GNR_FEC_PF_DRIVER_NAME)))
>               print_static_reg_debug_info(d->mmio_base);
>  #endif
> --
> 2.26.2

Reply via email to