diff options
Diffstat (limited to 'net/bluetooth/rfcomm/sock.c')
| -rw-r--r-- | net/bluetooth/rfcomm/sock.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c index c603a5eb4720..8bbbb5ec468c 100644 --- a/net/bluetooth/rfcomm/sock.c +++ b/net/bluetooth/rfcomm/sock.c @@ -918,7 +918,8 @@ static int rfcomm_sock_shutdown(struct socket *sock, int how)  		sk->sk_shutdown = SHUTDOWN_MASK;  		__rfcomm_sock_close(sk); -		if (sock_flag(sk, SOCK_LINGER) && sk->sk_lingertime) +		if (sock_flag(sk, SOCK_LINGER) && sk->sk_lingertime && +		    !(current->flags & PF_EXITING))  			err = bt_sock_wait_state(sk, BT_CLOSED, sk->sk_lingertime);  	}  	release_sock(sk);  |