]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/bluetooth/rfcomm/core.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / net / bluetooth / rfcomm / core.c
index 432a9a633e8d8da4ddcabdb1a9a3cef1a55a3253..6b83776534fb45e29946f9666cb7a23654d4a431 100644 (file)
@@ -41,7 +41,7 @@
 #include <linux/slab.h>
 
 #include <net/sock.h>
-#include <asm/uaccess.h>
+#include <linux/uaccess.h>
 #include <asm/unaligned.h>
 
 #include <net/bluetooth/bluetooth.h>
 
 #define VERSION "1.11"
 
-static int disable_cfc = 0;
+static int disable_cfc;
+static int l2cap_ertm;
 static int channel_mtu = -1;
 static unsigned int l2cap_mtu = RFCOMM_MAX_L2CAP_MTU;
-static int l2cap_ertm = 0;
 
 static struct task_struct *rfcomm_thread;
 
@@ -1164,7 +1164,8 @@ static int rfcomm_recv_ua(struct rfcomm_session *s, u8 dlci)
                         * initiator rfcomm_process_rx already calls
                         * rfcomm_session_put() */
                        if (s->sock->sk->sk_state != BT_CLOSED)
-                               rfcomm_session_put(s);
+                               if (list_empty(&s->dlcs))
+                                       rfcomm_session_put(s);
                        break;
                }
        }
@@ -1902,7 +1903,7 @@ static inline void rfcomm_check_connection(struct rfcomm_session *s)
 
        BT_DBG("%p state %ld", s, s->state);
 
-       switch(sk->sk_state) {
+       switch (sk->sk_state) {
        case BT_CONNECTED:
                s->state = BT_CONNECT;