diff options
author | Mark Brown <broonie@kernel.org> | 2014-09-18 10:49:37 -0700 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-09-18 10:49:37 -0700 |
commit | e55574f93ecb78dac5a15f29d18f2ab4dbc813bc (patch) | |
tree | ffce30ba6d6a11b3fdc5ebd28e5f3cca2d87d12c /net/bluetooth/sco.c | |
parent | 9ea00e4fa07ce46ab79c92087c72ae100de4de42 (diff) | |
parent | d831fd1b46d04e5c8c8a0431c321578d25852695 (diff) |
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-rtlsk-v3.10-rt-14.09
Diffstat (limited to 'net/bluetooth/sco.c')
-rw-r--r-- | net/bluetooth/sco.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c index 2bb1d3a5e76b..c9ae6b703c13 100644 --- a/net/bluetooth/sco.c +++ b/net/bluetooth/sco.c @@ -858,7 +858,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); } @@ -878,7 +879,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); |