diff options
author | João Paulo Rechi Vita <jprvita@gmail.com> | 2015-08-25 14:56:43 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2015-09-04 14:26:56 +0200 |
commit | 4c0778933a3d7c35a94e8c35847acd9bb59a257d (patch) | |
tree | 2fc41561ce6db7b5012675caf4593e51f1837bc1 /net/rfkill | |
parent | mac80211: protect non-HT BSS when HT TDLS traffic exists (diff) | |
download | linux-4c0778933a3d7c35a94e8c35847acd9bb59a257d.tar.xz linux-4c0778933a3d7c35a94e8c35847acd9bb59a257d.zip |
rfkill: Copy "all" global state to other types
When switching the state of all RFKill switches of type all we need to
replicate the RFKILL_TYPE_ALL global state to all the other types global
state, so it is used to initialize persistent RFKill switches on
register.
Signed-off-by: João Paulo Rechi Vita <jprvita@endlessm.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/rfkill')
-rw-r--r-- | net/rfkill/core.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/net/rfkill/core.c b/net/rfkill/core.c index f12149a29cb1..b41e9ea2ffff 100644 --- a/net/rfkill/core.c +++ b/net/rfkill/core.c @@ -341,7 +341,15 @@ static void __rfkill_switch_all(const enum rfkill_type type, bool blocked) { struct rfkill *rfkill; - rfkill_global_states[type].cur = blocked; + if (type == RFKILL_TYPE_ALL) { + int i; + + for (i = 0; i < NUM_RFKILL_TYPES; i++) + rfkill_global_states[i].cur = blocked; + } else { + rfkill_global_states[type].cur = blocked; + } + list_for_each_entry(rfkill, &rfkill_list, node) { if (rfkill->type != type && type != RFKILL_TYPE_ALL) continue; |