aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-04-25 17:01:17 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 01:29:06 -0400
commitffa4d7216e848fbfdcb8e6f0bb66abeaa1888964 (patch)
treea967ec65627e2f15c48cfddbd1b2283fd9ad260b
parent6313c1e0992feaee56bc09b85042b3186041fa3c (diff)
[NETLINK]: don't reinitialize callback mutex
Don't reinitialize the callback mutex the netlink_kernel_create caller handed in, it is supposed to already be initialized and could already be held by someone. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/netlink/af_netlink.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index ec16c9b7b3bd..64d4b27f25ab 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -388,8 +388,12 @@ static int __netlink_create(struct socket *sock, struct mutex *cb_mutex,
388 sock_init_data(sock, sk); 388 sock_init_data(sock, sk);
389 389
390 nlk = nlk_sk(sk); 390 nlk = nlk_sk(sk);
391 nlk->cb_mutex = cb_mutex ? : &nlk->cb_def_mutex; 391 if (cb_mutex)
392 mutex_init(nlk->cb_mutex); 392 nlk->cb_mutex = cb_mutex;
393 else {
394 nlk->cb_mutex = &nlk->cb_def_mutex;
395 mutex_init(nlk->cb_mutex);
396 }
393 init_waitqueue_head(&nlk->wait); 397 init_waitqueue_head(&nlk->wait);
394 398
395 sk->sk_destruct = netlink_sock_destruct; 399 sk->sk_destruct = netlink_sock_destruct;