diff options
Diffstat (limited to 'net/bluetooth/af_bluetooth.c')
| -rw-r--r-- | net/bluetooth/af_bluetooth.c | 6 | 
1 files changed, 3 insertions, 3 deletions
diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c index 8add9b49991..117e0d16178 100644 --- a/net/bluetooth/af_bluetooth.c +++ b/net/bluetooth/af_bluetooth.c @@ -494,9 +494,8 @@ int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo)  	BT_DBG("sk %p", sk);  	add_wait_queue(sk_sleep(sk), &wait); +	set_current_state(TASK_INTERRUPTIBLE);  	while (sk->sk_state != state) { -		set_current_state(TASK_INTERRUPTIBLE); -  		if (!timeo) {  			err = -EINPROGRESS;  			break; @@ -510,12 +509,13 @@ int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo)  		release_sock(sk);  		timeo = schedule_timeout(timeo);  		lock_sock(sk); +		set_current_state(TASK_INTERRUPTIBLE);  		err = sock_error(sk);  		if (err)  			break;  	} -	set_current_state(TASK_RUNNING); +	__set_current_state(TASK_RUNNING);  	remove_wait_queue(sk_sleep(sk), &wait);  	return err;  }  |