net/mlx4: share memory region resources
[dpdk.git] / drivers / net / mlx4 / mlx4_rxq.c
index 7fe21b6..8b97a89 100644 (file)
@@ -164,7 +164,8 @@ error:
  * @param rss
  *   RSS context to release.
  */
-void mlx4_rss_put(struct mlx4_rss *rss)
+void
+mlx4_rss_put(struct mlx4_rss *rss)
 {
        assert(rss->refcnt);
        if (--rss->refcnt)
@@ -190,7 +191,8 @@ void mlx4_rss_put(struct mlx4_rss *rss)
  * @return
  *   0 on success, a negative errno value otherwise and rte_errno is set.
  */
-int mlx4_rss_attach(struct mlx4_rss *rss)
+int
+mlx4_rss_attach(struct mlx4_rss *rss)
 {
        assert(rss->refcnt);
        if (rss->usecnt++) {
@@ -312,7 +314,8 @@ error:
  * @param rss
  *   RSS context to detach from.
  */
-void mlx4_rss_detach(struct mlx4_rss *rss)
+void
+mlx4_rss_detach(struct mlx4_rss *rss)
 {
        struct priv *priv = rss->priv;
        unsigned int i;
@@ -801,9 +804,8 @@ mlx4_rx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
                goto error;
        }
        /* Use the entire Rx mempool as the memory region. */
-       rxq->mr = mlx4_mp2mr(priv->pd, mp);
+       rxq->mr = mlx4_mr_get(priv, mp);
        if (!rxq->mr) {
-               rte_errno = EINVAL;
                ERROR("%p: MR creation failure: %s",
                      (void *)dev, strerror(rte_errno));
                goto error;
@@ -866,6 +868,6 @@ mlx4_rx_queue_release(void *dpdk_rxq)
        if (rxq->channel)
                claim_zero(ibv_destroy_comp_channel(rxq->channel));
        if (rxq->mr)
-               claim_zero(ibv_dereg_mr(rxq->mr));
+               mlx4_mr_put(rxq->mr);
        rte_free(rxq);
 }