From: Dan Carpenter <dan.carpenter@oracle.com>
To: lkayal@nvidia.com
Cc: linux-rdma@vger.kernel.org
Subject: [bug report] net/mlx5e: Allocate per-channel stats dynamically at first usage
Date: Thu, 6 Jan 2022 14:45:29 +0300 [thread overview]
Message-ID: <20220106114529.GA28590@kili> (raw)
Hello Lama Kayal,
The patch fa691d0c9c08: "net/mlx5e: Allocate per-channel stats
dynamically at first usage" from Sep 22, 2021, leads to the following
Smatch static checker warning:
drivers/net/ethernet/mellanox/mlx5/core/en_main.c:2205 mlx5e_channel_stats_alloc()
warn: array off by one? 'priv->channel_stats[ix]'
This is from an unpublishable check (too many false positives by design).
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
2197 static int mlx5e_channel_stats_alloc(struct mlx5e_priv *priv, int ix, int cpu)
2198 {
2199 if (ix > priv->stats_nch) {
I don't think this check makes sense. As far as I can see "ix" is
always == priv->stats_nch which is set on the last line of the the
function. Probably the check should be:
if (ix >= priv->max_nch) {
2200 netdev_warn(priv->netdev, "Unexpected channel stats index %d > %d\n", ix,
2201 priv->stats_nch);
2202 return -EINVAL;
2203 }
2204
--> 2205 if (priv->channel_stats[ix])
2206 return 0;
2207
2208 /* Asymmetric dynamic memory allocation.
2209 * Freed in mlx5e_priv_arrays_free, not on channel closure.
2210 */
2211 mlx5e_dbg(DRV, priv, "Creating channel stats %d\n", ix);
2212 priv->channel_stats[ix] = kvzalloc_node(sizeof(**priv->channel_stats),
2213 GFP_KERNEL, cpu_to_node(cpu));
2214 if (!priv->channel_stats[ix])
2215 return -ENOMEM;
2216 priv->stats_nch++;
2217
2218 return 0;
2219 }
regards,
dan carpenter
reply other threads:[~2022-01-06 11:45 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220106114529.GA28590@kili \
--to=dan.carpenter@oracle.com \
--cc=linux-rdma@vger.kernel.org \
--cc=lkayal@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.