[v1,1/1] drivers/baseband: fix device queues initialization
Checks
Commit Message
To prevent incorrect readings, initialize FFT and MLDTS queues to 0.
Fixes: 089148fc3f09 ("bbdev: add operation type for MLDTS processing")
Cc: stable@dpdk.org
Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
---
drivers/baseband/acc/rte_acc100_pmd.c | 1 +
drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c | 2 ++
drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 2 ++
drivers/baseband/la12xx/bbdev_la12xx.c | 2 ++
4 files changed, 7 insertions(+)
Comments
On Mon, Jul 8, 2024 at 9:14 PM Hernan Vargas <hernan.vargas@intel.com> wrote:
>
> To prevent incorrect readings, initialize FFT and MLDTS queues to 0.
All calls to bb drivers info_get are preceded with a:
memset(&dev_info, 0, sizeof(dev_info));
dev->dev_ops->info_get(dev, &dev_info);
So I don't really follow what this patch is trying to fix.
Can you provide details?
Hi David, Hernan,
This is not a fix per se (ie. no bug vulnerability), just keeping code consistent as the PMDs already set such unused queues to zero in the code (see existing code).
Just keeping that existing coding style for the new operation for code consistency.
We probably don’t have to fix on stable branch, so we may rephrase this commit as a cosmetic coding consistency change.
Thanks
Nic
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Friday, July 12, 2024 5:26 AM
> To: Vargas, Hernan <hernan.vargas@intel.com>
> Cc: dev@dpdk.org; gakhil@marvell.com; trix@redhat.com;
> maxime.coquelin@redhat.com; Chautru, Nicolas
> <nicolas.chautru@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> stable@dpdk.org
> Subject: Re: [PATCH v1 1/1] drivers/baseband: fix device queues initialization
>
> On Mon, Jul 8, 2024 at 9:14 PM Hernan Vargas <hernan.vargas@intel.com>
> wrote:
> >
> > To prevent incorrect readings, initialize FFT and MLDTS queues to 0.
>
> All calls to bb drivers info_get are preceded with a:
> memset(&dev_info, 0, sizeof(dev_info));
> dev->dev_ops->info_get(dev, &dev_info);
>
> So I don't really follow what this patch is trying to fix.
> Can you provide details?
>
>
> --
> David Marchand
@@ -1030,6 +1030,7 @@ acc100_dev_info_get(struct rte_bbdev *dev,
dev_info->num_queues[RTE_BBDEV_OP_LDPC_ENC] = d->acc_conf.q_dl_5g.num_aqs_per_groups *
d->acc_conf.q_dl_5g.num_qgroups;
dev_info->num_queues[RTE_BBDEV_OP_FFT] = 0;
+ dev_info->num_queues[RTE_BBDEV_OP_MLDTS] = 0;
dev_info->queue_priority[RTE_BBDEV_OP_TURBO_DEC] = d->acc_conf.q_ul_4g.num_qgroups;
dev_info->queue_priority[RTE_BBDEV_OP_TURBO_ENC] = d->acc_conf.q_dl_4g.num_qgroups;
dev_info->queue_priority[RTE_BBDEV_OP_LDPC_DEC] = d->acc_conf.q_ul_5g.num_qgroups;
@@ -625,6 +625,8 @@ fpga_5gnr_dev_info_get(struct rte_bbdev *dev, struct rte_bbdev_driver_info *dev_
dev_info->num_queues[RTE_BBDEV_OP_TURBO_ENC] = 0;
dev_info->num_queues[RTE_BBDEV_OP_LDPC_DEC] = dev_info->max_num_queues / 2;
dev_info->num_queues[RTE_BBDEV_OP_LDPC_ENC] = dev_info->max_num_queues / 2;
+ dev_info->num_queues[RTE_BBDEV_OP_FFT] = 0;
+ dev_info->num_queues[RTE_BBDEV_OP_MLDTS] = 0;
dev_info->queue_priority[RTE_BBDEV_OP_LDPC_DEC] = 1;
dev_info->queue_priority[RTE_BBDEV_OP_LDPC_ENC] = 1;
}
@@ -659,6 +659,8 @@ fpga_dev_info_get(struct rte_bbdev *dev,
dev_info->num_queues[RTE_BBDEV_OP_TURBO_ENC] = dev_info->max_num_queues / 2;
dev_info->num_queues[RTE_BBDEV_OP_LDPC_DEC] = 0;
dev_info->num_queues[RTE_BBDEV_OP_LDPC_ENC] = 0;
+ dev_info->num_queues[RTE_BBDEV_OP_FFT] = 0;
+ dev_info->num_queues[RTE_BBDEV_OP_MLDTS] = 0;
dev_info->queue_priority[RTE_BBDEV_OP_TURBO_DEC] = 1;
dev_info->queue_priority[RTE_BBDEV_OP_TURBO_ENC] = 1;
}
@@ -108,6 +108,8 @@ la12xx_info_get(struct rte_bbdev *dev __rte_unused,
dev_info->num_queues[RTE_BBDEV_OP_TURBO_ENC] = 0;
dev_info->num_queues[RTE_BBDEV_OP_LDPC_DEC] = LA12XX_MAX_QUEUES / 2;
dev_info->num_queues[RTE_BBDEV_OP_LDPC_ENC] = LA12XX_MAX_QUEUES / 2;
+ dev_info->num_queues[RTE_BBDEV_OP_FFT] = 0;
+ dev_info->num_queues[RTE_BBDEV_OP_MLDTS] = 0;
dev_info->queue_priority[RTE_BBDEV_OP_LDPC_DEC] = 1;
dev_info->queue_priority[RTE_BBDEV_OP_LDPC_ENC] = 1;
rte_bbdev_log_debug("got device info from %u", dev->data->dev_id);