New upstream version 18.11.2
[deb_dpdk.git] / drivers / net / mlx5 / mlx5.c
index e7668bd..d91d55b 100644 (file)
@@ -157,9 +157,10 @@ mlx5_prepare_shared_data(void)
                if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
                        LIST_INIT(&mlx5_shared_data->mem_event_cb_list);
                        rte_rwlock_init(&mlx5_shared_data->mem_event_rwlock);
+                       rte_mem_event_callback_register("MLX5_MEM_EVENT_CB",
+                                                       mlx5_mr_mem_event_cb,
+                                                       NULL);
                }
-               rte_mem_event_callback_register("MLX5_MEM_EVENT_CB",
-                                               mlx5_mr_mem_event_cb, NULL);
        }
        rte_spinlock_unlock(&mlx5_shared_data_lock);
 }
@@ -200,7 +201,7 @@ mlx5_getenv_int(const char *name)
 static void *
 mlx5_alloc_verbs_buf(size_t size, void *data)
 {
-       struct priv *priv = data;
+       struct mlx5_priv *priv = data;
        void *ret;
        size_t alignment = sysconf(_SC_PAGESIZE);
        unsigned int socket = SOCKET_ID_ANY;
@@ -248,7 +249,7 @@ mlx5_free_verbs_buf(void *ptr, void *data __rte_unused)
 static void
 mlx5_dev_close(struct rte_eth_dev *dev)
 {
-       struct priv *priv = dev->data->dev_private;
+       struct mlx5_priv *priv = dev->data->dev_private;
        unsigned int i;
        int ret;
 
@@ -335,7 +336,7 @@ mlx5_dev_close(struct rte_eth_dev *dev)
 
                i = RTE_MIN(mlx5_dev_to_port_id(dev->device, port_id, i), i);
                while (i--) {
-                       struct priv *opriv =
+                       struct mlx5_priv *opriv =
                                rte_eth_devices[port_id[i]].data->dev_private;
 
                        if (!opriv ||
@@ -630,7 +631,7 @@ find_lower_va_bound(const struct rte_memseg_list *msl,
 static int
 mlx5_uar_init_primary(struct rte_eth_dev *dev)
 {
-       struct priv *priv = dev->data->dev_private;
+       struct mlx5_priv *priv = dev->data->dev_private;
        void *addr = (void *)0;
 
        if (uar_base) { /* UAR address space mapped. */
@@ -676,7 +677,7 @@ mlx5_uar_init_primary(struct rte_eth_dev *dev)
 static int
 mlx5_uar_init_secondary(struct rte_eth_dev *dev)
 {
-       struct priv *priv = dev->data->dev_private;
+       struct mlx5_priv *priv = dev->data->dev_private;
        void *addr;
 
        assert(priv->uar_base);
@@ -739,7 +740,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
        struct ibv_pd *pd = NULL;
        struct mlx5dv_context dv_attr = { .comp_mask = 0 };
        struct rte_eth_dev *eth_dev = NULL;
-       struct priv *priv = NULL;
+       struct mlx5_priv *priv = NULL;
        int err = 0;
        unsigned int hw_padding = 0;
        unsigned int mps;
@@ -1001,7 +1002,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
 
                i = RTE_MIN(mlx5_dev_to_port_id(dpdk_dev, port_id, i), i);
                while (i--) {
-                       const struct priv *opriv =
+                       const struct mlx5_priv *opriv =
                                rte_eth_devices[port_id[i]].data->dev_private;
 
                        if (!opriv ||
@@ -1233,8 +1234,10 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
        priv->config = config;
        /* Supported Verbs flow priority number detection. */
        err = mlx5_flow_discover_priorities(eth_dev);
-       if (err < 0)
+       if (err < 0) {
+               err = -err;
                goto error;
+       }
        priv->config.flow_prio = err;
        /*
         * Once the device is added to the list of memory event