]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/bluetooth/rfcomm/core.c
Bluetooth: Do not call rfcomm_session_put() for RFCOMM UA on closed socket
[mv-sheeva.git] / net / bluetooth / rfcomm / core.c
index 2b506373957ab90ded8d435b6b7bb913b2b5a34e..89f4a59eb82b9a520886a35e6b3aa65a6286ea70 100644 (file)
@@ -1150,7 +1150,11 @@ static int rfcomm_recv_ua(struct rfcomm_session *s, u8 dlci)
                        break;
 
                case BT_DISCONN:
-                       rfcomm_session_put(s);
+                       /* When socket is closed and we are not RFCOMM
+                        * initiator rfcomm_process_rx already calls
+                        * rfcomm_session_put() */
+                       if (s->sock->sk->sk_state != BT_CLOSED)
+                               rfcomm_session_put(s);
                        break;
                }
        }