X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=net%2Fbluetooth%2Fl2cap_sock.c;h=0bc67dc5dccec30f890d47aabfc413f39db833c4;hb=093facf3634da1b0c2cc7ed106f1983da901bbab;hp=9bb4d1b3a48382301ba9af14c392b7754f4198e8;hpb=02f3e25457915728624b976b0382601b5605ad64;p=firefly-linux-kernel-4.4.55.git diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c index 9bb4d1b3a483..0bc67dc5dcce 100644 --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c @@ -1112,7 +1112,8 @@ static int l2cap_sock_shutdown(struct socket *sock, int how) l2cap_chan_close(chan, 0); lock_sock(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); }