Thread (7 messages) flat view 7 messages, 2 authors, 2021-11-11

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 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help