X-Git-Url: https://git.stricted.de/?p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git;a=blobdiff_plain;f=net%2Fbluetooth%2Fsco.c;h=de9c955b247acb7ccf1b4efc0a67dd9819502643;hp=3178c7b4a17148f30fa811d80053afb8309bdb3a;hb=b4350432998578500203d562d5b093c6a5beadd2;hpb=b40a831c0f1d1cdd9342c5bf09f259d0834c442f diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c index 3178c7b4a171..de9c955b247a 100644 --- a/net/bluetooth/sco.c +++ b/net/bluetooth/sco.c @@ -875,7 +875,8 @@ static int sco_sock_shutdown(struct socket *sock, int how) sco_sock_clear_timer(sk); __sco_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); } @@ -895,7 +896,8 @@ static int sco_sock_release(struct socket *sock) sco_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)) { lock_sock(sk); err = bt_sock_wait_state(sk, BT_CLOSED, sk->sk_lingertime); release_sock(sk);