net/octeontx2: disable unnecessary error interrupts
authorNithin Dabilpuram <ndabilpuram@marvell.com>
Mon, 13 Apr 2020 13:45:40 +0000 (19:15 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 21 Apr 2020 11:57:07 +0000 (13:57 +0200)
Disable CQ_DISABLED error interrupt in NIX_LF_ERR_INT
to fix spurious interrupts in event dev mode. Also skip
configuring RSS when RQ count is '0' because
RSS table initialization is done incorrectly due to
divide-by-zero error and it is leading to RQ_OOR error
in NIX_LF_ERR_INT.

Fixes: 83ce2880e22e ("net/octeontx2: support RSS")
Cc: stable@dpdk.org
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
drivers/net/octeontx2/otx2_ethdev_irq.c
drivers/net/octeontx2/otx2_rss.c

index 96b848a..b121488 100644 (file)
@@ -472,9 +472,12 @@ otx2_nix_err_intr_enb_dis(struct rte_eth_dev *eth_dev, bool enb)
 {
        struct otx2_eth_dev *dev = otx2_eth_pmd_priv(eth_dev);
 
-       /* Enable all nix lf error interrupts except for RQ_DISABLED */
+       /* Enable all nix lf error interrupts except
+        * RQ_DISABLED and CQ_DISABLED.
+        */
        if (enb)
-               otx2_write64(~BIT_ULL(11), dev->base + NIX_LF_ERR_INT_ENA_W1S);
+               otx2_write64(~(BIT_ULL(11) | BIT_ULL(24)),
+                            dev->base + NIX_LF_ERR_INT_ENA_W1S);
        else
                otx2_write64(~0ull, dev->base + NIX_LF_ERR_INT_ENA_W1C);
 }
index a29441e..5e3f866 100644 (file)
@@ -358,7 +358,7 @@ otx2_nix_rss_config(struct rte_eth_dev *eth_dev)
        int rc;
 
        /* Skip further configuration if selected mode is not RSS */
-       if (eth_dev->data->dev_conf.rxmode.mq_mode != ETH_MQ_RX_RSS)
+       if (eth_dev->data->dev_conf.rxmode.mq_mode != ETH_MQ_RX_RSS || !qcnt)
                return 0;
 
        /* Update default RSS key and cfg */