net/mlx5: fix indirect action modify rollback
[dpdk.git] / drivers / net / mlx5 / mlx5_rxq.c
index 23685d7..49165f4 100644 (file)
@@ -1240,7 +1240,7 @@ mlx5_mprq_alloc_mp(struct rte_eth_dev *dev)
        snprintf(name, sizeof(name), "port-%u-mprq", dev->data->port_id);
        mp = rte_mempool_create(name, obj_num, obj_size, MLX5_MPRQ_MP_CACHE_SZ,
                                0, NULL, NULL, mlx5_mprq_buf_init,
-                               (void *)(uintptr_t)(1 << strd_num_n),
+                               (void *)((uintptr_t)1 << strd_num_n),
                                dev->device->numa_node, 0);
        if (mp == NULL) {
                DRV_LOG(ERR,
@@ -1712,7 +1712,7 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
        struct mlx5_priv *priv = dev->data->dev_private;
        struct mlx5_rxq_ctrl *rxq_ctrl;
 
-       if (!(*priv->rxqs)[idx])
+       if (priv->rxqs == NULL || (*priv->rxqs)[idx] == NULL)
                return 0;
        rxq_ctrl = container_of((*priv->rxqs)[idx], struct mlx5_rxq_ctrl, rxq);
        if (__atomic_sub_fetch(&rxq_ctrl->refcnt, 1, __ATOMIC_RELAXED) > 1)
@@ -2086,7 +2086,7 @@ mlx5_ind_table_obj_modify(struct rte_eth_dev *dev,
 error:
        err = rte_errno;
        for (j = 0; j < i; j++)
-               mlx5_rxq_release(dev, ind_tbl->queues[j]);
+               mlx5_rxq_release(dev, queues[j]);
        rte_errno = err;
        DRV_LOG(DEBUG, "Port %u cannot setup indirection table.",
                dev->data->port_id);