OSDN Git Service

netlink: Do not schedule work from sk_destruct
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 5 Dec 2016 07:28:21 +0000 (15:28 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 10 Dec 2016 18:07:23 +0000 (19:07 +0100)
commitbaaf0c65bc8ea9c7a404b09bc8cc3b8a1e4f18df
tree214c190f756e371b419b227198748e396a316e01
parentd1ed9c1dba632199c59bb8b1245c2f86e28c7380
netlink: Do not schedule work from sk_destruct

[ Upstream commit ed5d7788a934a4b6d6d025e948ed4da496b4f12e ]

It is wrong to schedule a work from sk_destruct using the socket
as the memory reserve because the socket will be freed immediately
after the return from sk_destruct.

Instead we should do the deferral prior to sk_free.

This patch does just that.

Fixes: 707693c8a498 ("netlink: Call cb->done from a worker thread")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Tested-by: Andrey Konovalov <andreyknvl@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/netlink/af_netlink.c