diff options
author | Roy Novich <royno@nvidia.com> | 2023-05-07 16:57:43 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-05-30 12:44:01 +0100 |
commit | 42e1dafa65e216a59fd0ea9dce5ebb59824803d6 (patch) | |
tree | 89f574280a2401257a819f0b46cc17df2ecefa0e /lib/dim/net_dim.c | |
parent | 7460ac5a66fb613f996a6684f8b85e526c6ddfbc (diff) | |
download | linux-stable-42e1dafa65e216a59fd0ea9dce5ebb59824803d6.tar.gz linux-stable-42e1dafa65e216a59fd0ea9dce5ebb59824803d6.tar.bz2 linux-stable-42e1dafa65e216a59fd0ea9dce5ebb59824803d6.zip |
linux/dim: Do nothing if no time delta between samples
[ Upstream commit 162bd18eb55adf464a0fa2b4144b8d61c75ff7c2 ]
Add return value for dim_calc_stats. This is an indication for the
caller if curr_stats was assigned by the function. Avoid using
curr_stats uninitialized over {rdma/net}_dim, when no time delta between
samples. Coverity reported this potential use of an uninitialized
variable.
Fixes: 4c4dbb4a7363 ("net/mlx5e: Move dynamic interrupt coalescing code to include/linux")
Fixes: cb3c7fd4f839 ("net/mlx5e: Support adaptive RX coalescing")
Signed-off-by: Roy Novich <royno@nvidia.com>
Reviewed-by: Aya Levin <ayal@nvidia.com>
Reviewed-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Reviewed-by: Michal Kubiak <michal.kubiak@intel.com>
Link: https://lore.kernel.org/r/20230507135743.138993-1-tariqt@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'lib/dim/net_dim.c')
-rw-r--r-- | lib/dim/net_dim.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/dim/net_dim.c b/lib/dim/net_dim.c index dae3b51ac3d9..0e4f3a686f1d 100644 --- a/lib/dim/net_dim.c +++ b/lib/dim/net_dim.c @@ -227,7 +227,8 @@ void net_dim(struct dim *dim, struct dim_sample end_sample) dim->start_sample.event_ctr); if (nevents < DIM_NEVENTS) break; - dim_calc_stats(&dim->start_sample, &end_sample, &curr_stats); + if (!dim_calc_stats(&dim->start_sample, &end_sample, &curr_stats)) + break; if (net_dim_decision(&curr_stats, dim)) { dim->state = DIM_APPLY_NEW_PROFILE; schedule_work(&dim->work); |