aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-06-03 03:55:29 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-06-03 14:06:15 -0400
commit2ec2c68c11af95075f29e370970eb97c89234e2e (patch)
treedd0749b38d54f41f1823a992815971b02b3e489f /net
parent72828b1b3cabecfce4321877aa526a2bd21acf0c (diff)
rfkill: always init poll delayed work
The rfkill core didn't initialise the poll delayed work because it assumed that polling was always done by specifying the poll function. cfg80211, however, would like to start polling only later, which is a valid use case and easy to support, so change rfkill to always initialise the poll delayed work and thus allow starting polling by calling the rfkill_resume_polling() function after registration. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r--net/rfkill/core.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/net/rfkill/core.c b/net/rfkill/core.c
index 91e9168b5447..11b7314723df 100644
--- a/net/rfkill/core.c
+++ b/net/rfkill/core.c
@@ -909,16 +909,15 @@ int __must_check rfkill_register(struct rfkill *rfkill)
909 909
910 rfkill->registered = true; 910 rfkill->registered = true;
911 911
912 if (rfkill->ops->poll) { 912 INIT_DELAYED_WORK(&rfkill->poll_work, rfkill_poll);
913 INIT_DELAYED_WORK(&rfkill->poll_work, rfkill_poll);
914 schedule_delayed_work(&rfkill->poll_work,
915 round_jiffies_relative(POLL_INTERVAL));
916 }
917
918 INIT_WORK(&rfkill->uevent_work, rfkill_uevent_work); 913 INIT_WORK(&rfkill->uevent_work, rfkill_uevent_work);
919
920 INIT_WORK(&rfkill->sync_work, rfkill_sync_work); 914 INIT_WORK(&rfkill->sync_work, rfkill_sync_work);
915
916 if (rfkill->ops->poll)
917 schedule_delayed_work(&rfkill->poll_work,
918 round_jiffies_relative(POLL_INTERVAL));
921 schedule_work(&rfkill->sync_work); 919 schedule_work(&rfkill->sync_work);
920
922 rfkill_send_events(rfkill, RFKILL_OP_ADD); 921 rfkill_send_events(rfkill, RFKILL_OP_ADD);
923 922
924 mutex_unlock(&rfkill_global_mutex); 923 mutex_unlock(&rfkill_global_mutex);