Bluetooth: remove l2cap_load() hack
[pandora-kernel.git] / net / bluetooth / rfcomm / core.c
index 432a9a6..c997393 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;
 
@@ -2153,8 +2154,6 @@ static int __init rfcomm_init(void)
 {
        int err;
 
-       l2cap_load();
-
        hci_register_cb(&rfcomm_cb);
 
        rfcomm_thread = kthread_run(rfcomm_run, NULL, "krfcommd");