From: sashiko-bot@kernel.org
To: wei.fang@oss.nxp.com
Cc: imx@lists.linux.dev, Frank.Li@kernel.org
Subject: Re: [PATCH v4 net-next 14/14] net: enetc: use kzalloc_flex() for enetc_psfp_gate allocation
Date: Wed, 08 Jul 2026 08:48:31 +0000 [thread overview]
Message-ID: <20260708084832.33ECC1F00A3A@smtp.kernel.org> (raw)
In-Reply-To: <20260707081834.710730-15-wei.fang@oss.nxp.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] Inconsistent locking around the `epsfp` global state lists risks concurrent access issues, such as list corruption or use-after-free, particularly during stats polling.
--
--- Patch [14]: [PATCH v4 net-next 14/14] net: enetc: use kzalloc_flex() for enetc_psfp_gate allocation ---
commit 1354b34382c1b22bf61c564f93df2dfb8dea78a7
Author: Wei Fang <wei.fang@nxp.com>
net: enetc: use kzalloc_flex() for enetc_psfp_gate allocation
Replace the open-coded struct_size() + kzalloc() pattern with the
kzalloc_flex() helper when allocating struct enetc_psfp_gate. This
removes the intermediate entries_size local variable and makes the
allocation site more concise.
> diff --git a/drivers/net/ethernet/freescale/enetc/enetc_qos.c b/drivers/net/ethernet/freescale/enetc/enetc_qos.c
> index 7b17bca24f260..2aa0fcaafcd23 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc_qos.c
> +++ b/drivers/net/ethernet/freescale/enetc/enetc_qos.c
[ ... ]
> @@ -1242,8 +1241,7 @@ static int enetc_psfp_parse_clsflower(struct enetc_ndev_priv *priv,
> goto free_filter;
> }
>
> - entries_size = struct_size(sgi, entries, entryg->gate.num_entries);
> - sgi = kzalloc(entries_size, GFP_KERNEL);
> + sgi = kzalloc_flex(*sgi, entries, entryg->gate.num_entries);
[Severity: High]
This isn't a bug introduced by this patch, but is there a risk of list
corruption or a use-after-free due to inconsistent locking around the epsfp
global state lists?
Looking at enetc_psfp_destroy_clsflower(), it calls remove_one_chain()
without holding epsfp.psfp_lock:
enetc_qos.c:enetc_psfp_destroy_clsflower() {
...
remove_one_chain(priv, filter);
...
}
Which then unlinks and frees the filter memory without list-protection
locks or RCU mechanisms:
enetc_qos.c:remove_one_chain() {
...
hlist_del(&filter->node);
kfree(filter);
...
}
If this destruction runs concurrently with stats polling, such as a user
executing tc filter show or the background stats timer, the reading path
can be actively iterating the list locklessly:
enetc_qos.c:enetc_get_stream_by_index() {
...
hlist_for_each_entry(f, &epsfp.stream_list, node)
...
}
Could this concurrent hlist_del() and kfree() during a lockless
hlist_for_each_entry() traversal lead to a use-after-free or a kernel
panic?
> if (!sgi) {
> err = -ENOMEM;
> goto free_filter;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260707081834.710730-1-wei.fang@oss.nxp.com?part=14
prev parent reply other threads:[~2026-07-08 8:48 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-07 8:18 [PATCH v4 net-next 00/14] net: enetc: cleanups and improvements wei.fang
2026-07-07 8:18 ` [PATCH v4 net-next 01/14] net: enetc: extract common helpers for MAC promiscuous mode setting wei.fang
2026-07-07 8:18 ` [PATCH v4 net-next 02/14] net: enetc: extract common helpers for MAC hash filter configuration wei.fang
2026-07-08 8:48 ` sashiko-bot
2026-07-07 8:18 ` [PATCH v4 net-next 03/14] net: enetc: convert ndo_set_rx_mode() to ndo_set_rx_mode_async() wei.fang
2026-07-07 8:18 ` [PATCH v4 net-next 04/14] net: enetc: improve MAFT entry management with bitmap tracking wei.fang
2026-07-07 8:18 ` [PATCH v4 net-next 05/14] net: enetc: use PCI device name for debugfs directory wei.fang
2026-07-07 8:18 ` [PATCH v4 net-next 06/14] net: enetc: simplify enetc4_set_port_speed() wei.fang
2026-07-07 8:18 ` [PATCH v4 net-next 07/14] net: enetc: differentiate phylink capabilities for pseudo-MAC and standalone MAC wei.fang
2026-07-08 8:48 ` sashiko-bot
2026-07-07 8:18 ` [PATCH v4 net-next 08/14] net: enetc: remove invalid code from enetc4_pl_mac_link_up() wei.fang
2026-07-07 8:18 ` [PATCH v4 net-next 09/14] net: enetc: open-code enetc4_set_default_si_vlan_promisc() wei.fang
2026-07-07 8:18 ` [PATCH v4 net-next 10/14] net: enetc: refactor SI VLAN promiscuous mode configuration wei.fang
2026-07-07 8:18 ` [PATCH v4 net-next 11/14] net: enetc: move enetc_set_si_vlan_promisc() to enetc_pf_common.c wei.fang
2026-07-07 8:18 ` [PATCH v4 net-next 12/14] net: enetc: remove redundant num_vsi field from enetc_port_caps wei.fang
2026-07-08 8:48 ` sashiko-bot
2026-07-08 12:01 ` Wei Fang (OSS)
2026-07-07 8:18 ` [PATCH v4 net-next 13/14] net: enetc: use alloc_etherdev_mqs() to create netdev for VF driver wei.fang
2026-07-08 8:48 ` sashiko-bot
2026-07-07 8:18 ` [PATCH v4 net-next 14/14] net: enetc: use kzalloc_flex() for enetc_psfp_gate allocation wei.fang
2026-07-08 8:48 ` sashiko-bot [this message]
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=20260708084832.33ECC1F00A3A@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=imx@lists.linux.dev \
--cc=sashiko-reviews@lists.linux.dev \
--cc=wei.fang@oss.nxp.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.