netlink: Call cb->done from a worker thread
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 28 Nov 2016 11:22:12 +0000 (19:22 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Nov 2016 00:48:38 +0000 (19:48 -0500)
commit707693c8a498697aa8db240b93eb76ec62e30892
treea9ee8933c07cfc86afc74436d39a26c8beaff683
parent95c2027bfeda21a28eb245121e6a249f38d0788e
netlink: Call cb->done from a worker thread

The cb->done interface expects to be called in process context.
This was broken by the netlink RCU conversion.  This patch fixes
it by adding a worker struct to make the cb->done call where
necessary.

Fixes: 21e4902aea80 ("netlink: Lockless lookup with RCU grace...")
Reported-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netlink/af_netlink.c
net/netlink/af_netlink.h