lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 466/757] RDMA/hns: Solve the overflow of the calc_pg_sz()
    Date
    From: Jiaran Zhang <zhangjiaran@huawei.com>

    [ Upstream commit 768202a0825d447de785e87ff1ea1d3c86a71727 ]

    calc_pg_sz() may gets a data calculation overflow if the PAGE_SIZE is 64 KB
    and hop_num is 2. It is because that all variables involved in calculation
    are defined in type of int. So change the type of bt_chunk_size,
    buf_chunk_size and obj_per_chunk_default to u64.

    Fixes: ba6bb7e97421 ("RDMA/hns: Add interfaces to get pf capabilities from firmware")
    Link: https://lore.kernel.org/r/1600509802-44382-6-git-send-email-liweihang@huawei.com
    Signed-off-by: Jiaran Zhang <zhangjiaran@huawei.com>
    Signed-off-by: Weihang Li <liweihang@huawei.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
    index 59087d5811ba3..547f8c7dcf561 100644
    --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
    +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
    @@ -1770,9 +1770,9 @@ static void calc_pg_sz(int obj_num, int obj_size, int hop_num, int ctx_bt_num,
    int *buf_page_size, int *bt_page_size, u32 hem_type)
    {
    u64 obj_per_chunk;
    - int bt_chunk_size = 1 << PAGE_SHIFT;
    - int buf_chunk_size = 1 << PAGE_SHIFT;
    - int obj_per_chunk_default = buf_chunk_size / obj_size;
    + u64 bt_chunk_size = PAGE_SIZE;
    + u64 buf_chunk_size = PAGE_SIZE;
    + u64 obj_per_chunk_default = buf_chunk_size / obj_size;

    *buf_page_size = 0;
    *bt_page_size = 0;
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 17:40    [W:4.041 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site