lkml.org 
[lkml]   [2016]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 092/100] IB/mlx5: Fix returned values of query QP
    Date
    From: Noa Osherovich <noaos@mellanox.com>

    3.12-stable review patch. If anyone has any objections, please let me know.

    ===============

    commit 0540d8148d419bf769e5aa99c77027febd8922f0 upstream.

    Some variables were not initialized properly: max_recv_wr,
    max_recv_sge, max_send_wr, qp_context and max_inline_data.

    Fixes: e126ba97dba9 ('mlx5: Add driver for Mellanox Connect-IB...')
    Signed-off-by: Noa Osherovich <noaos@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    ---
    drivers/infiniband/hw/mlx5/qp.c | 14 +++++++++-----
    1 file changed, 9 insertions(+), 5 deletions(-)

    diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c
    index 5659ea880741..7ece1059f263 100644
    --- a/drivers/infiniband/hw/mlx5/qp.c
    +++ b/drivers/infiniband/hw/mlx5/qp.c
    @@ -169,6 +169,8 @@ static int set_rq_size(struct mlx5_ib_dev *dev, struct ib_qp_cap *cap,
    qp->rq.max_gs = 0;
    qp->rq.wqe_cnt = 0;
    qp->rq.wqe_shift = 0;
    + cap->max_recv_wr = 0;
    + cap->max_recv_sge = 0;
    } else {
    if (ucmd) {
    qp->rq.wqe_cnt = ucmd->rq_wqe_count;
    @@ -2433,17 +2435,19 @@ int mlx5_ib_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *qp_attr, int qp_attr
    qp_attr->cap.max_recv_sge = qp->rq.max_gs;

    if (!ibqp->uobject) {
    - qp_attr->cap.max_send_wr = qp->sq.wqe_cnt;
    + qp_attr->cap.max_send_wr = qp->sq.max_post;
    qp_attr->cap.max_send_sge = qp->sq.max_gs;
    + qp_init_attr->qp_context = ibqp->qp_context;
    } else {
    qp_attr->cap.max_send_wr = 0;
    qp_attr->cap.max_send_sge = 0;
    }

    - /* We don't support inline sends for kernel QPs (yet), and we
    - * don't know what userspace's value should be.
    - */
    - qp_attr->cap.max_inline_data = 0;
    + qp_init_attr->qp_type = ibqp->qp_type;
    + qp_init_attr->recv_cq = ibqp->recv_cq;
    + qp_init_attr->send_cq = ibqp->send_cq;
    + qp_init_attr->srq = ibqp->srq;
    + qp_attr->cap.max_inline_data = qp->max_inline_data;

    qp_init_attr->cap = qp_attr->cap;

    --
    2.9.3
    \
     
     \ /
      Last update: 2016-09-17 09:57    [W:4.215 / U:0.700 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site