diff options
Diffstat (limited to 'net/bluetooth/l2cap.c')
| -rw-r--r-- | net/bluetooth/l2cap.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index 99d68c34e4f..864c76f4a67 100644 --- a/net/bluetooth/l2cap.c +++ b/net/bluetooth/l2cap.c @@ -1147,7 +1147,7 @@ static int l2cap_sock_accept(struct socket *sock, struct socket *newsock, int fl  	BT_DBG("sk %p timeo %ld", sk, timeo);  	/* Wait for an incoming connection. (wake-one). */ -	add_wait_queue_exclusive(sk->sk_sleep, &wait); +	add_wait_queue_exclusive(sk_sleep(sk), &wait);  	while (!(nsk = bt_accept_dequeue(sk, newsock))) {  		set_current_state(TASK_INTERRUPTIBLE);  		if (!timeo) { @@ -1170,7 +1170,7 @@ static int l2cap_sock_accept(struct socket *sock, struct socket *newsock, int fl  		}  	}  	set_current_state(TASK_RUNNING); -	remove_wait_queue(sk->sk_sleep, &wait); +	remove_wait_queue(sk_sleep(sk), &wait);  	if (err)  		goto done; @@ -1626,7 +1626,10 @@ static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock, struct ms  	/* Connectionless channel */  	if (sk->sk_type == SOCK_DGRAM) {  		skb = l2cap_create_connless_pdu(sk, msg, len); -		err = l2cap_do_send(sk, skb); +		if (IS_ERR(skb)) +			err = PTR_ERR(skb); +		else +			err = l2cap_do_send(sk, skb);  		goto done;  	}  |