From: Simon Horman <horms@kernel.org>
To: Ido Schimmel <idosch@idosch.org>
Cc: Vlad Buslov <vladbu@nvidia.com>,
davem@davemloft.net, kuba@kernel.org, edumazet@google.com,
pabeni@redhat.com, netdev@vger.kernel.org,
amir.hanania@intel.com, jeffrey.t.kirsher@intel.com,
john.fastabend@gmail.com
Subject: Re: [PATCH net] vlan: Fix VLAN 0 memory leak
Date: Mon, 31 Jul 2023 11:52:19 +0200 [thread overview]
Message-ID: <ZMeEU/Aqq0ljY8NE@kernel.org> (raw)
In-Reply-To: <ZMaCB/Pek5c4baCn@shredder>
On Sun, Jul 30, 2023 at 06:30:15PM +0300, Ido Schimmel wrote:
> On Fri, Jul 28, 2023 at 06:31:52PM +0200, Vlad Buslov wrote:
> > The referenced commit intended to fix memleak of VLAN 0 that is implicitly
> > created on devices with NETIF_F_HW_VLAN_CTAG_FILTER feature. However, it
> > doesn't take into account that the feature can be re-set during the
> > netdevice lifetime which will cause memory leak if feature is disabled
> > during the device deletion as illustrated by [0]. Fix the leak by
> > unconditionally deleting VLAN 0 on NETDEV_DOWN event.
>
> Specifically, what happens is:
>
> >
> > [0]:
> > > modprobe 8021q
> > > ip l set dev eth2 up
>
> VID 0 is created with reference count of 1
>
> > > ethtool -k eth2 | grep rx-vlan-filter
> > rx-vlan-filter: on
> > > ethtool -K eth2 rx-vlan-filter off
> > > ip l set dev eth2 down
>
> Reference count is not dropped because the feature is off
>
> > > ip l set dev eth2 up
>
> Reference count is not increased because the feature is off. It could
> have been increased if this line was preceded by:
>
> ethtool -K eth2 rx-vlan-filter on
>
> > > modprobe -r mlx5_ib
> > > modprobe -r mlx5_core
>
> Reference count is not dropped during NETDEV_DOWN because the feature is
> off and NETDEV_UNREGISTER only dismantles upper VLAN devices, resulting
> in VID 0 being leaked.
Thanks Ido and Vlad,
perhaps it would be worth including the information added
by Ido above in the patch description. Not a hard requirement
from my side, just an idea.
next prev parent reply other threads:[~2023-07-31 9:52 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-28 16:31 [PATCH net] vlan: Fix VLAN 0 memory leak Vlad Buslov
2023-07-30 15:30 ` Ido Schimmel
2023-07-31 9:52 ` Simon Horman [this message]
2023-07-31 15:45 ` Ido Schimmel
2023-07-31 19:11 ` Vlad Buslov
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=ZMeEU/Aqq0ljY8NE@kernel.org \
--to=horms@kernel.org \
--cc=amir.hanania@intel.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=idosch@idosch.org \
--cc=jeffrey.t.kirsher@intel.com \
--cc=john.fastabend@gmail.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=vladbu@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.