|
@@ -388,8 +388,12 @@ static int __netlink_create(struct socket *sock, struct mutex *cb_mutex,
|
|
sock_init_data(sock, sk);
|
|
sock_init_data(sock, sk);
|
|
|
|
|
|
nlk = nlk_sk(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);
|
|
init_waitqueue_head(&nlk->wait);
|
|
|
|
|
|
sk->sk_destruct = netlink_sock_destruct;
|
|
sk->sk_destruct = netlink_sock_destruct;
|