rfkill: Add the capability to switch all devices of all type in __rfkill_switch_all().
authorAlex Hung <alex.hung@canonical.com>
Wed, 23 May 2012 06:11:52 +0000 (14:11 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 6 Jun 2012 19:18:17 +0000 (15:18 -0400)
__rfkill_switch_all() switches the state of devices of a given type; however,
it does not switch devices of all type (RFKILL_TYPE_ALL). As a result, it
ignores the keycode "KEY_RFKILL" from another module, i.e. eeepc-wmi.

This fix is to make __rfkill_switch_all() to be able to switch not only
devices of a given type but also all devices.

Signed-off-by: Alex Hung <alex.hung@canonical.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/rfkill/core.c

index f974961754ca90df62dcc685db2d037b910091b8..752b72360ebcb5736c849201aa6ed00361714ed9 100644 (file)
@@ -325,7 +325,7 @@ static void __rfkill_switch_all(const enum rfkill_type type, bool blocked)
 
        rfkill_global_states[type].cur = blocked;
        list_for_each_entry(rfkill, &rfkill_list, node) {
-               if (rfkill->type != type)
+               if (rfkill->type != type && type != RFKILL_TYPE_ALL)
                        continue;
 
                rfkill_set_block(rfkill, blocked);