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);

Reply via email to