From: Dust Li <dust.li@linux.alibaba.com>
To: stable@vger.kernel.org
Cc: Breno Leitao <leitao@debian.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Sasha Levin <sashal@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 6.6.y] net: free_netdev: exit earlier if dummy
Date: Tue, 10 Nov 2026 14:36:14 +0800 [thread overview]
Message-ID: <avK7XqLvdaeWlp8o@linux.alibaba.com> (raw)
In-Reply-To: <20261107161415.1917665-1-dust.li@linux.alibaba.com>
On 2026-11-08 00:14:15, Dust Li wrote:
Hi Greg, Sasha
Can you pick up this patch for 6.6 ?
This is a prerequisite that was missed when 6.6.y picked up the
dummy-net_device conversion of the mediatek driver.
6.6.158 took b209bd6d0bff ("net: mediatek: mtk_eth_sock: allocate dummy
net_device dynamically") as d5d57501f543, followed by 16f3a28cf5f8
(as 81e82340170ae) and "allocate dummy netdev sooner" (efc91ab1d97bd).
alloc_netdev_dummy() -> init_dummy_netdev_core() sets
dev->reg_state = NETREG_DUMMY, but 6.6.y free_netdev() only special
cases NETREG_UNREGISTERING and NETREG_UNINITIALIZED. So every
free_netdev(eth->dummy_dev) -- mtk_remove() at
drivers/net/ethernet/mediatek/mtk_eth_soc.c and the probe error
path -- walks into
BUG_ON(dev->reg_state != NETREG_UNREGISTERED);
Upstream f8d05679fb3f and b209bd6d0bff both landed in v6.10-rc1, so
mainline was never broken.
5.10.y / 5.15.y / 6.1.y - alloc_netdev_dummy() does not exist and no
driver creates a dynamically allocated
dummy net_device
So only 6.6.y need this.
Best regards,
Dust
>From: Breno Leitao <leitao@debian.org>
>
>For dummy devices, exit earlier at free_netdev() instead of executing
>the whole function. This is necessary, because dummy devices are
>special, and shouldn't have the second part of the function executed.
>
>Otherwise reg_state, which is NETREG_DUMMY, will be overwritten and
>there will be no way to identify that this is a dummy device. Also, this
>device do not need the final put_device(), since dummy devices are not
>registered (through register_netdevice()), where the device reference is
>increased (at netdev_register_kobject()/device_add()).
>
>Suggested-by: Jakub Kicinski <kuba@kernel.org>
>Signed-off-by: Breno Leitao <leitao@debian.org>
>Reviewed-by: Ido Schimmel <idosch@nvidia.com>
>Signed-off-by: David S. Miller <davem@davemloft.net>
>Signed-off-by: Dust Li <dust.li@linux.alibaba.com>
>---
> net/core/dev.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
>diff --git a/net/core/dev.c b/net/core/dev.c
>index f9436563a2e84..0d88d285c713f 100644
>--- a/net/core/dev.c
>+++ b/net/core/dev.c
>@@ -11093,7 +11093,8 @@ void free_netdev(struct net_device *dev)
> dev->xdp_bulkq = NULL;
>
> /* Compatibility with error handling in drivers */
>- if (dev->reg_state == NETREG_UNINITIALIZED) {
>+ if (dev->reg_state == NETREG_UNINITIALIZED ||
>+ dev->reg_state == NETREG_DUMMY) {
> netdev_freemem(dev);
> return;
> }
>--
>2.43.7
prev parent reply other threads:[~2026-11-10 6:36 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-07 16:14 [PATCH 6.6.y] net: free_netdev: exit earlier if dummy Dust Li
2026-11-10 6:36 ` Dust Li [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=avK7XqLvdaeWlp8o@linux.alibaba.com \
--to=dust.li@linux.alibaba.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=kuba@kernel.org \
--cc=leitao@debian.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/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.