diff options
author | Yamin Friedman | 2019-07-23 09:22:47 +0200 |
---|---|---|
committer | David S. Miller | 2019-07-25 20:34:39 +0200 |
commit | f06d0ca45827a5790d7508de4759aed976933d4d (patch) | |
tree | f3129a536a3e647dc47f0acc9f9fcfd5230fbf4b /drivers/net/ethernet/broadcom/bnxt | |
parent | ife: error out when nla attributes are empty (diff) | |
download | kernel-qcow2-linux-f06d0ca45827a5790d7508de4759aed976933d4d.tar.gz kernel-qcow2-linux-f06d0ca45827a5790d7508de4759aed976933d4d.tar.xz kernel-qcow2-linux-f06d0ca45827a5790d7508de4759aed976933d4d.zip |
linux/dim: Fix overflow in dim calculation
While using net_dim, a dim_sample was used without ever initializing the
comps value. Added use of DIV_ROUND_DOWN_ULL() to prevent potential
overflow, it should not be a problem to save the final result in an int
because after the division by epms the value should not be larger than a
few thousand.
[ 1040.127124] UBSAN: Undefined behaviour in lib/dim/dim.c:78:23
[ 1040.130118] signed integer overflow:
[ 1040.131643] 134718714 * 100 cannot be represented in type 'int'
Fixes: 398c2b05bbee ("linux/dim: Add completions count to dim_sample")
Signed-off-by: Yamin Friedman <yaminf@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Acked-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnxt')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 7134d2c3eb1c..7070349915bc 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -2136,7 +2136,7 @@ static int bnxt_poll(struct napi_struct *napi, int budget) } } if (bp->flags & BNXT_FLAG_DIM) { - struct dim_sample dim_sample; + struct dim_sample dim_sample = {}; dim_update_sample(cpr->event_ctr, cpr->rx_packets, |