common/mlx5: fix device list operations concurrency
[dpdk.git] / drivers / common / cnxk / roc_nix.c
index 0621976..23d508b 100644 (file)
@@ -143,6 +143,7 @@ roc_nix_lf_alloc(struct roc_nix *roc_nix, uint32_t nb_rxq, uint32_t nb_txq,
        req->rss_sz = nix->reta_sz;
        req->rss_grps = ROC_NIX_RSS_GRPS;
        req->npa_func = idev_npa_pffunc_get();
+       req->sso_func = idev_sso_pffunc_get();
        req->rx_cfg = rx_cfg;
 
        if (!roc_nix->rss_tag_as_xor)
@@ -396,11 +397,17 @@ skip_dev_init:
        if (rc)
                goto lf_detach;
 
+       rc = nix_tm_conf_init(roc_nix);
+       if (rc)
+               goto unregister_irqs;
+
        /* Get NIX HW info */
        roc_nix_get_hw_info(roc_nix);
        nix->dev.drv_inited = true;
 
        return 0;
+unregister_irqs:
+       nix_unregister_irqs(nix);
 lf_detach:
        nix_lf_detach(nix);
 dev_fini:
@@ -421,6 +428,7 @@ roc_nix_dev_fini(struct roc_nix *roc_nix)
        if (!nix->dev.drv_inited)
                goto fini;
 
+       nix_tm_conf_fini(roc_nix);
        nix_unregister_irqs(nix);
 
        rc = nix_lf_detach(nix);