lkml.org 
[lkml]   [2018]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.16 24/52] IB/mlx5: Use unlimited rate when static rate is not supported
    Date
    4.16-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Danit Goldberg <danitg@mellanox.com>

    commit 4f32ac2e452c2180cd2df581cbadac183e27ecd0 upstream.

    Before the change, if the user passed a static rate value different
    than zero and the FW doesn't support static rate,
    it would end up configuring rate of 2.5 GBps.

    Fix this by using rate 0; unlimited, in cases where FW
    doesn't support static rate configuration.

    Cc: <stable@vger.kernel.org> # 3.10
    Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters")
    Reviewed-by: Majd Dibbiny <majd@mellanox.com>
    Signed-off-by: Danit Goldberg <danitg@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/infiniband/hw/mlx5/qp.c | 18 +++++++++---------
    1 file changed, 9 insertions(+), 9 deletions(-)

    --- a/drivers/infiniband/hw/mlx5/qp.c
    +++ b/drivers/infiniband/hw/mlx5/qp.c
    @@ -2424,18 +2424,18 @@ enum {

    static int ib_rate_to_mlx5(struct mlx5_ib_dev *dev, u8 rate)
    {
    - if (rate == IB_RATE_PORT_CURRENT) {
    + if (rate == IB_RATE_PORT_CURRENT)
    return 0;
    - } else if (rate < IB_RATE_2_5_GBPS || rate > IB_RATE_300_GBPS) {
    +
    + if (rate < IB_RATE_2_5_GBPS || rate > IB_RATE_300_GBPS)
    return -EINVAL;
    - } else {
    - while (rate != IB_RATE_2_5_GBPS &&
    - !(1 << (rate + MLX5_STAT_RATE_OFFSET) &
    - MLX5_CAP_GEN(dev->mdev, stat_rate_support)))
    - --rate;
    - }

    - return rate + MLX5_STAT_RATE_OFFSET;
    + while (rate != IB_RATE_PORT_CURRENT &&
    + !(1 << (rate + MLX5_STAT_RATE_OFFSET) &
    + MLX5_CAP_GEN(dev->mdev, stat_rate_support)))
    + --rate;
    +
    + return rate ? rate + MLX5_STAT_RATE_OFFSET : rate;
    }

    static int modify_raw_packet_eth_prio(struct mlx5_core_dev *dev,

    \
     
     \ /
      Last update: 2018-05-08 10:50    [W:4.198 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site