net/mlx4_core: Save the qpn from the input modifier in RST2INIT wrapper
[linux-2.6-block.git] / drivers / net / ethernet / mellanox / mlx4 / resource_tracker.c
index b0e11255a355fdda9059796e0df7a838cbf107d8..31bd56727022fe7a3bacc3a09e11691f79f1a974 100644 (file)
@@ -487,7 +487,7 @@ int mlx4_init_resource_tracker(struct mlx4_dev *dev)
        int max_vfs_guarantee_counter = get_max_gauranteed_vfs_counter(dev);
 
        priv->mfunc.master.res_tracker.slave_list =
-               kzalloc(dev->num_slaves * sizeof(struct slave_list),
+               kcalloc(dev->num_slaves, sizeof(struct slave_list),
                        GFP_KERNEL);
        if (!priv->mfunc.master.res_tracker.slave_list)
                return -ENOMEM;
@@ -514,14 +514,14 @@ int mlx4_init_resource_tracker(struct mlx4_dev *dev)
                                                      sizeof(int),
                                                      GFP_KERNEL);
                if (i == RES_MAC || i == RES_VLAN)
-                       res_alloc->allocated = kzalloc(MLX4_MAX_PORTS *
-                                                      (dev->persist->num_vfs
-                                                      + 1) *
-                                                      sizeof(int), GFP_KERNEL);
+                       res_alloc->allocated =
+                               kcalloc(MLX4_MAX_PORTS *
+                                               (dev->persist->num_vfs + 1),
+                                       sizeof(int), GFP_KERNEL);
                else
-                       res_alloc->allocated = kzalloc((dev->persist->
-                                                       num_vfs + 1) *
-                                                      sizeof(int), GFP_KERNEL);
+                       res_alloc->allocated =
+                               kcalloc(dev->persist->num_vfs + 1,
+                                       sizeof(int), GFP_KERNEL);
                /* Reduce the sink counter */
                if (i == RES_COUNTER)
                        res_alloc->res_free = dev->caps.max_counters - 1;
@@ -2958,7 +2958,7 @@ int mlx4_RST2INIT_QP_wrapper(struct mlx4_dev *dev, int slave,
        u32 srqn = qp_get_srqn(qpc) & 0xffffff;
        int use_srq = (qp_get_srqn(qpc) >> 24) & 1;
        struct res_srq *srq;
-       int local_qpn = be32_to_cpu(qpc->local_qpn) & 0xffffff;
+       int local_qpn = vhcr->in_modifier & 0xffffff;
 
        err = adjust_qp_sched_queue(dev, slave, qpc, inbox);
        if (err)