X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=net%2Fbluetooth%2Fl2cap_sock.c;h=5f36f70ce44d3f8607735b85c19cfa0655b617e7;hb=6e030a4d929e8a7095debdaec8920ac879706ca8;hp=302d29b3744d4c5250778ac784a432d369dde977;hpb=ec07e110ab9dce68c6125ada0cbb0907856fe6be;p=firefly-linux-kernel-4.4.55.git diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c index 302d29b3744d..5f36f70ce44d 100644 --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c @@ -887,7 +887,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); }