lkml.org 
[lkml]   [2018]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.18 015/235] net/mlx5: Use u16 for Work Queue buffer fragment size
    Date
    4.18-stable review patch.  If anyone has any objections, please let me know.

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

    From: Tariq Toukan <tariqt@mellanox.com>

    [ Upstream commit 8d71e818506718e8d7032ce824b5c74a17d4f7a5 ]

    Minimal stride size is 16.
    Hence, the number of strides in a fragment (of PAGE_SIZE)
    is <= PAGE_SIZE / 16 <= 4K.

    u16 is sufficient to represent this.

    Fixes: 388ca8be0037 ("IB/mlx5: Implement fragmented completion queue (CQ)")
    Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
    Reviewed-by: Eran Ben Elisha <eranbe@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/mellanox/mlx5/core/wq.c | 4 ++--
    drivers/net/ethernet/mellanox/mlx5/core/wq.h | 2 +-
    include/linux/mlx5/driver.h | 2 +-
    3 files changed, 4 insertions(+), 4 deletions(-)

    --- a/drivers/net/ethernet/mellanox/mlx5/core/wq.c
    +++ b/drivers/net/ethernet/mellanox/mlx5/core/wq.c
    @@ -39,9 +39,9 @@ u32 mlx5_wq_cyc_get_size(struct mlx5_wq_
    return (u32)wq->fbc.sz_m1 + 1;
    }

    -u32 mlx5_wq_cyc_get_frag_size(struct mlx5_wq_cyc *wq)
    +u16 mlx5_wq_cyc_get_frag_size(struct mlx5_wq_cyc *wq)
    {
    - return (u32)wq->fbc.frag_sz_m1 + 1;
    + return wq->fbc.frag_sz_m1 + 1;
    }

    u32 mlx5_cqwq_get_size(struct mlx5_cqwq *wq)
    --- a/drivers/net/ethernet/mellanox/mlx5/core/wq.h
    +++ b/drivers/net/ethernet/mellanox/mlx5/core/wq.h
    @@ -80,7 +80,7 @@ int mlx5_wq_cyc_create(struct mlx5_core_
    void *wqc, struct mlx5_wq_cyc *wq,
    struct mlx5_wq_ctrl *wq_ctrl);
    u32 mlx5_wq_cyc_get_size(struct mlx5_wq_cyc *wq);
    -u32 mlx5_wq_cyc_get_frag_size(struct mlx5_wq_cyc *wq);
    +u16 mlx5_wq_cyc_get_frag_size(struct mlx5_wq_cyc *wq);

    int mlx5_wq_qp_create(struct mlx5_core_dev *mdev, struct mlx5_wq_param *param,
    void *qpc, struct mlx5_wq_qp *wq,
    --- a/include/linux/mlx5/driver.h
    +++ b/include/linux/mlx5/driver.h
    @@ -357,7 +357,7 @@ struct mlx5_frag_buf {
    struct mlx5_frag_buf_ctrl {
    struct mlx5_frag_buf frag_buf;
    u32 sz_m1;
    - u32 frag_sz_m1;
    + u16 frag_sz_m1;
    u32 strides_offset;
    u8 log_sz;
    u8 log_stride;

    \
     
     \ /
      Last update: 2018-09-24 14:52    [W:4.167 / U:0.172 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site