diff options
author | Patrick McHardy <kaber@trash.net> | 2007-04-25 14:01:17 -0700 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-25 22:29:06 -0700 |
commit | ffa4d7216e848fbfdcb8e6f0bb66abeaa1888964 (patch) | |
tree | a967ec65627e2f15c48cfddbd1b2283fd9ad260b /net/netlink | |
parent | 6313c1e0992feaee56bc09b85042b3186041fa3c (diff) | |
download | blackbird-op-linux-ffa4d7216e848fbfdcb8e6f0bb66abeaa1888964.tar.gz blackbird-op-linux-ffa4d7216e848fbfdcb8e6f0bb66abeaa1888964.zip |
[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>
Diffstat (limited to 'net/netlink')
-rw-r--r-- | net/netlink/af_netlink.c | 8 |
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, sock_init_data(sock, sk); nlk = nlk_sk(sk); - nlk->cb_mutex = cb_mutex ? : &nlk->cb_def_mutex; - mutex_init(nlk->cb_mutex); + if (cb_mutex) + nlk->cb_mutex = cb_mutex; + else { + nlk->cb_mutex = &nlk->cb_def_mutex; + mutex_init(nlk->cb_mutex); + } init_waitqueue_head(&nlk->wait); sk->sk_destruct = netlink_sock_destruct; |