netlink: Unset cb_running when terminating dump on release
authorSiddh Raman Pant <siddh.raman.pant@oracle.com>
Sat, 15 Feb 2025 09:40:51 +0000 (09:40 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 19 Feb 2025 02:03:12 +0000 (18:03 -0800)
When we terminated the dump, the callback isn't running, so cb_running
should be set to false to be logically consistent.

cb_running signifies whether a dump is ongoing. It is set to true in
cb->start(), and is checked in netlink_dump() to be true initially.
After the dump, it is set to false in the same function.

This is just a cleanup, no path should access this field on a closed
socket.

Signed-off-by: Siddh Raman Pant <siddh.raman.pant@oracle.com>
Link: https://patch.msgid.link/aff028e3eb2b768b9895fa6349fa1981ae22f098.camel@oracle.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/netlink/af_netlink.c

index 85311226183a259574c64643eae9e906ccc9c1da..f8f13058a46ed3a701ca137aafd590768ac16d4e 100644 (file)
@@ -771,6 +771,7 @@ static int netlink_release(struct socket *sock)
                        nlk->cb.done(&nlk->cb);
                module_put(nlk->cb.module);
                kfree_skb(nlk->cb.skb);
+               WRITE_ONCE(nlk->cb_running, false);
        }
 
        module_put(nlk->module);