aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mlx5/srq.c
diff options
context:
space:
mode:
authorEli Cohen <eli@mellanox.com>2014-10-02 05:19:42 -0400
committerDavid S. Miller <davem@davemloft.net>2014-10-03 18:42:31 -0400
commitc7a08ac7ee68b9af0d5af99c7b34b574cac4d144 (patch)
tree5c8ee3cd2058f2230df4b5c9fe21f44d47cfbf7b /drivers/infiniband/hw/mlx5/srq.c
parent55a93b3ea780908b7d1b3a8cf1976223a9268d78 (diff)
net/mlx5_core: Update device capabilities handling
Rearrange struct mlx5_caps so it has a "gen" field to represent the current capabilities configured for the device. Max capabilities can also be queried from the device. Also update capabilities struct to contain more fields as per the latest revision if firmware specification. Signed-off-by: Eli Cohen <eli@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/infiniband/hw/mlx5/srq.c')
-rw-r--r--drivers/infiniband/hw/mlx5/srq.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/mlx5/srq.c b/drivers/infiniband/hw/mlx5/srq.c
index 70bd131ba646..97cc1baaa8e3 100644
--- a/drivers/infiniband/hw/mlx5/srq.c
+++ b/drivers/infiniband/hw/mlx5/srq.c
@@ -238,6 +238,7 @@ struct ib_srq *mlx5_ib_create_srq(struct ib_pd *pd,
238 struct ib_udata *udata) 238 struct ib_udata *udata)
239{ 239{
240 struct mlx5_ib_dev *dev = to_mdev(pd->device); 240 struct mlx5_ib_dev *dev = to_mdev(pd->device);
241 struct mlx5_general_caps *gen;
241 struct mlx5_ib_srq *srq; 242 struct mlx5_ib_srq *srq;
242 int desc_size; 243 int desc_size;
243 int buf_size; 244 int buf_size;
@@ -247,11 +248,12 @@ struct ib_srq *mlx5_ib_create_srq(struct ib_pd *pd,
247 int is_xrc; 248 int is_xrc;
248 u32 flgs, xrcdn; 249 u32 flgs, xrcdn;
249 250
251 gen = &dev->mdev->caps.gen;
250 /* Sanity check SRQ size before proceeding */ 252 /* Sanity check SRQ size before proceeding */
251 if (init_attr->attr.max_wr >= dev->mdev->caps.max_srq_wqes) { 253 if (init_attr->attr.max_wr >= gen->max_srq_wqes) {
252 mlx5_ib_dbg(dev, "max_wr %d, cap %d\n", 254 mlx5_ib_dbg(dev, "max_wr %d, cap %d\n",
253 init_attr->attr.max_wr, 255 init_attr->attr.max_wr,
254 dev->mdev->caps.max_srq_wqes); 256 gen->max_srq_wqes);
255 return ERR_PTR(-EINVAL); 257 return ERR_PTR(-EINVAL);
256 } 258 }
257 259