lkml.org 
[lkml]   [2020]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.9 46/50] ixgbe: fix signed-integer-overflow warning
    Date
    From: Xie XiuQi <xiexiuqi@huawei.com>

    [ Upstream commit 3b70683fc4d68f5d915d9dc7e5ba72c732c7315c ]

    ubsan report this warning, fix it by adding a unsigned suffix.

    UBSAN: signed-integer-overflow in
    drivers/net/ethernet/intel/ixgbe/ixgbe_common.c:2246:26
    65535 * 65537 cannot be represented in type 'int'
    CPU: 21 PID: 7 Comm: kworker/u256:0 Not tainted 5.7.0-rc3-debug+ #39
    Hardware name: Huawei TaiShan 2280 V2/BC82AMDC, BIOS 2280-V2 03/27/2020
    Workqueue: ixgbe ixgbe_service_task [ixgbe]
    Call trace:
    dump_backtrace+0x0/0x3f0
    show_stack+0x28/0x38
    dump_stack+0x154/0x1e4
    ubsan_epilogue+0x18/0x60
    handle_overflow+0xf8/0x148
    __ubsan_handle_mul_overflow+0x34/0x48
    ixgbe_fc_enable_generic+0x4d0/0x590 [ixgbe]
    ixgbe_service_task+0xc20/0x1f78 [ixgbe]
    process_one_work+0x8f0/0xf18
    worker_thread+0x430/0x6d0
    kthread+0x218/0x238
    ret_from_fork+0x10/0x18

    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Xie XiuQi <xiexiuqi@huawei.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
    index 0d2baec546e1..c17135b7fca7 100644
    --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
    +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
    @@ -2219,7 +2219,7 @@ s32 ixgbe_fc_enable_generic(struct ixgbe_hw *hw)
    }

    /* Configure pause time (2 TCs per register) */
    - reg = hw->fc.pause_time * 0x00010001;
    + reg = hw->fc.pause_time * 0x00010001U;
    for (i = 0; i < (MAX_TRAFFIC_CLASS / 2); i++)
    IXGBE_WRITE_REG(hw, IXGBE_FCTTV(i), reg);

    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-09 01:34    [W:3.162 / U:0.632 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site