]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - net/bluetooth/rfcomm/core.c
Bluetooth: Fix sleeping function in RFCOMM within invalid context
[linux-2.6.git] / net / bluetooth / rfcomm / core.c
index fc5ee3296e224f4144a08ddc2ba0f01bb6b31895..2b506373957ab90ded8d435b6b7bb913b2b5a34e 100644 (file)
@@ -252,7 +252,6 @@ static void rfcomm_session_timeout(unsigned long arg)
        BT_DBG("session %p state %ld", s, s->state);
 
        set_bit(RFCOMM_TIMED_OUT, &s->flags);
-       rfcomm_session_put(s);
        rfcomm_schedule(RFCOMM_SCHED_TIMEO);
 }
 
@@ -1920,6 +1919,7 @@ static inline void rfcomm_process_sessions(void)
                if (test_and_clear_bit(RFCOMM_TIMED_OUT, &s->flags)) {
                        s->state = BT_DISCONN;
                        rfcomm_send_disc(s, 0);
+                       rfcomm_session_put(s);
                        continue;
                }