|
@@ -62,7 +62,6 @@ static DEFINE_MUTEX(rfcomm_mutex);
|
|
|
#define rfcomm_lock() mutex_lock(&rfcomm_mutex)
|
|
|
#define rfcomm_unlock() mutex_unlock(&rfcomm_mutex)
|
|
|
|
|
|
-static unsigned long rfcomm_event;
|
|
|
|
|
|
static LIST_HEAD(session_list);
|
|
|
|
|
@@ -120,7 +119,6 @@ static inline void rfcomm_schedule(void)
|
|
|
{
|
|
|
if (!rfcomm_thread)
|
|
|
return;
|
|
|
- set_bit(RFCOMM_SCHED_WAKEUP, &rfcomm_event);
|
|
|
wake_up_process(rfcomm_thread);
|
|
|
}
|
|
|
|
|
@@ -2038,19 +2036,18 @@ static int rfcomm_run(void *unused)
|
|
|
|
|
|
rfcomm_add_listener(BDADDR_ANY);
|
|
|
|
|
|
- while (!kthread_should_stop()) {
|
|
|
+ while (1) {
|
|
|
set_current_state(TASK_INTERRUPTIBLE);
|
|
|
- if (!test_bit(RFCOMM_SCHED_WAKEUP, &rfcomm_event)) {
|
|
|
- /* No pending events. Let's sleep.
|
|
|
- * Incoming connections and data will wake us up. */
|
|
|
- schedule();
|
|
|
- }
|
|
|
- set_current_state(TASK_RUNNING);
|
|
|
+
|
|
|
+ if (kthread_should_stop())
|
|
|
+ break;
|
|
|
|
|
|
/* Process stuff */
|
|
|
- clear_bit(RFCOMM_SCHED_WAKEUP, &rfcomm_event);
|
|
|
rfcomm_process_sessions();
|
|
|
+
|
|
|
+ schedule();
|
|
|
}
|
|
|
+ __set_current_state(TASK_RUNNING);
|
|
|
|
|
|
rfcomm_kill_listener();
|
|
|
|