On 10/12/22 04:53, Hernan Vargas wrote:
Clearing of PF info ring outside of handler may cause interrupt to be missed. A condition in the ACC100 PMD implementation may cause an interrupt functional handler call to be missed due to related bit being cleared when checking PF info ring status. Fixes: 06531464151 ("baseband/acc100: support interrupt") Cc: sta...@dpdk.org Signed-off-by: Hernan Vargas <hernan.var...@intel.com>
No new line here.
Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com> --- drivers/baseband/acc/rte_acc100_pmd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/baseband/acc/rte_acc100_pmd.c b/drivers/baseband/acc/rte_acc100_pmd.c index c0e6d0ef23..e561d33150 100644 --- a/drivers/baseband/acc/rte_acc100_pmd.c +++ b/drivers/baseband/acc/rte_acc100_pmd.c @@ -261,11 +261,12 @@ acc100_check_ir(struct acc_device *acc100_dev) while (ring_data->valid) { if ((ring_data->int_nb < ACC100_PF_INT_DMA_DL_DESC_IRQ) || ( ring_data->int_nb > - ACC100_PF_INT_DMA_DL5G_DESC_IRQ)) + ACC100_PF_INT_DMA_DL5G_DESC_IRQ)) { rte_bbdev_log(WARNING, "InfoRing: ITR:%d Info:0x%x", ring_data->int_nb, ring_data->detailed_info); - /* Initialize Info Ring entry and move forward */ - ring_data->val = 0; + /* Initialize Info Ring entry and move forward */ + ring_data->val = 0; + } info_ring_head++; ring_data = acc100_dev->info_ring + (info_ring_head & ACC_INFO_RING_MASK);