Re: Re: [PATCH v1 2/2] hamradio: defer 6pack kfree after unregister_netdev
From: Lin Ma <hidden>
Date: 2021-11-11 02:10:31
Also in:
lkml
Hi there,
Sent Time: 2021-11-11 10:06:12 (Thursday) To: "Lin Ma" <redacted> Cc: netdev@vger.kernel.org, davem@davemloft.net, jirislaby@kernel.org, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1 2/2] hamradio: defer 6pack kfree after unregister_netdev On Wed, 10 Nov 2021 18:05:25 -0800 Jakub Kicinski wrote:quoted
quoted
diff --git a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c index 49f10053a794..bfdf89e54752 100644 --- a/drivers/net/hamradio/6pack.c +++ b/drivers/net/hamradio/6pack.c@@ -672,11 +672,13 @@ static void sixpack_close(struct tty_struct *tty) del_timer_sync(&sp->tx_t); del_timer_sync(&sp->resync_t); - /* Free all 6pack frame buffers. */ + unregister_netdev(sp->dev); + + /* Free all 6pack frame buffers after unreg. */ kfree(sp->rbuff); kfree(sp->xbuff); - unregister_netdev(sp->dev); + free_netdev(sp->dev);You should mention in the commit message why you think it's safe to add free_netdev() which wasn't here before... This driver seems to be setting: dev->needs_free_netdev = true; so unregister_netdev() will free the netdev automatically. That said I don't see a reason why this driver needs the automatic cleanup. You can either remove that setting and then you can call free_netdev() like you do, or you need to move the cleanup to dev->priv_destructor.Looks like this go applied already, please send a follow up fix.
Oooops, thanks for the remind. XD I just found that the mkill adds the free_netdev after the unregister_netdev so I did it too. No idea about this automatic cleanup. Should I send the fix in this thread or open a new one? Thanks Lin