On Wed, Aug 28, 2019 at 07:41:14AM +0000, Eran Ben Elisha wrote: > > > On 8/26/2019 3:56 PM, Dan Carpenter wrote: > > Hello Eran Ben Elisha, > > > > The patch cef35af34d6d: "net/mlx5e: Add mlx5e HV VHCA stats agent" > > from Aug 22, 2019, leads to the following static checker warning: > > > > drivers/net/ethernet/mellanox/mlx5/core/en/hv_vhca_stats.c:41 mlx5e_hv_vhca_fill_stats() > > warn: potential pointer math issue ('buf' is a u64 pointer) > > > > drivers/net/ethernet/mellanox/mlx5/core/en/hv_vhca_stats.c > > 33 static void mlx5e_hv_vhca_fill_stats(struct mlx5e_priv *priv, u64 *data, > > ^^^^^^^^^ > > data is a u64 pointer. > > > > 34 int buf_len) > > 35 { > > 36 int ch, i = 0; > > 37 > > 38 for (ch = 0; ch < priv->max_nch; ch++) { > > 39 u64 *buf = data + i; > > ^^^^^^^^ > > > > 40 > > 41 if (WARN_ON_ONCE(buf + > > 42 sizeof(struct mlx5e_hv_vhca_per_ring_stats) > > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > This pointer math doesn't work. I'm surprised the warning doesn't > > trigger. > > It it not triggered as both 'data' and 'buf' are u64*, > and sizeof(struct mlx5e_hv_vhca_per_ring_stats) < buf_len as expected. > This checker does the work, but over wrong range. Ah. Of course. Thanks! regards, dan carpenter