rfkill: drop current_state from tasks in rfkill-input
authorFabien Crespel <fabien@crespel.net>
Mon, 23 Jun 2008 20:23:06 +0000 (17:23 -0300)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 26 Jun 2008 18:21:21 +0000 (14:21 -0400)
The whole current_state thing seems completely useless and a source of
problems in rfkill-input, since state comparison is already done in rfkill,
and rfkill-input is more than likely to become out of sync with the real
state.

Signed-off-by: Fabien Crespel <fabien@crespel.net>
Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Cc: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/rfkill/rfkill-input.c

index 29c13d3..d285f9a 100644 (file)
@@ -30,27 +30,15 @@ struct rfkill_task {
        spinlock_t lock; /* for accessing last and desired state */
        unsigned long last; /* last schedule */
        enum rfkill_state desired_state; /* on/off */
-       enum rfkill_state current_state; /* on/off */
 };
 
 static void rfkill_task_handler(struct work_struct *work)
 {
        struct rfkill_task *task = container_of(work, struct rfkill_task, work);
-       enum rfkill_state state;
 
        mutex_lock(&task->mutex);
 
-       /*
-        * Use temp variable to fetch desired state to keep it
-        * consistent even if rfkill_schedule_toggle() runs in
-        * another thread or interrupts us.
-        */
-       state = task->desired_state;
-
-       if (state != task->current_state) {
-               rfkill_switch_all(task->type, state);
-               task->current_state = state;
-       }
+       rfkill_switch_all(task->type, task->desired_state);
 
        mutex_unlock(&task->mutex);
 }
@@ -94,7 +82,6 @@ static void rfkill_schedule_toggle(struct rfkill_task *task)
                .mutex = __MUTEX_INITIALIZER(n.mutex),  \
                .lock = __SPIN_LOCK_UNLOCKED(n.lock),   \
                .desired_state = RFKILL_STATE_ON,       \
-               .current_state = RFKILL_STATE_ON,       \
        }
 
 static DEFINE_RFKILL_TASK(rfkill_wlan, RFKILL_TYPE_WLAN);