lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 705/772] RDMA/hfi1: Fix potential integer multiplication overflow errors
    Date
    From: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>

    commit f93e91a0372c922c20d5bee260b0f43b4b8a1bee upstream.

    When multiplying of different types, an overflow is possible even when
    storing the result in a larger type. This is because the conversion is
    done after the multiplication. So arithmetic overflow and thus in
    incorrect value is possible.

    Correct an instance of this in the inter packet delay calculation. Fix by
    ensuring one of the operands is u64 which will promote the other to u64 as
    well ensuring no overflow.

    Cc: stable@vger.kernel.org
    Fixes: 7724105686e7 ("IB/hfi1: add driver files")
    Link: https://lore.kernel.org/r/20220520183712.48973.29855.stgit@awfm-01.cornelisnetworks.com
    Reviewed-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/infiniband/hw/hfi1/init.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/infiniband/hw/hfi1/init.c
    +++ b/drivers/infiniband/hw/hfi1/init.c
    @@ -489,7 +489,7 @@ void set_link_ipg(struct hfi1_pportdata
    u16 shift, mult;
    u64 src;
    u32 current_egress_rate; /* Mbits /sec */
    - u32 max_pkt_time;
    + u64 max_pkt_time;
    /*
    * max_pkt_time is the maximum packet egress time in units
    * of the fabric clock period 1/(805 MHz).

    \
     
     \ /
      Last update: 2022-06-07 23:42    [W:2.522 / U:0.480 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site