summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ipw2x00/ipw2200.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2012-12-21 17:56:54 -0800
committerTejun Heo <tj@kernel.org>2013-02-09 11:30:48 -0800
commit7c99e0bf86fdc1dee238eb6e213b980f887b68f1 (patch)
treef290572f06bbecbaaa9907c857e3d7879931e41c /drivers/net/wireless/ipw2x00/ipw2200.c
parent7d0315a2bec2dd7fe9cbe31098bb89536648224e (diff)
downloadlinux-3.10-7c99e0bf86fdc1dee238eb6e213b980f887b68f1.tar.gz
linux-3.10-7c99e0bf86fdc1dee238eb6e213b980f887b68f1.tar.bz2
linux-3.10-7c99e0bf86fdc1dee238eb6e213b980f887b68f1.zip
ipw2x00: simplify scan_event handling
* Drop unnesssary delayd_work_pending() tests. * Unify scan_event_{now|later} by using mod_delayed_work() w/ 0 delay for scan_event_now. * Make ipw2200 scan_event handling match ipw2100 - use mod_delayed_work() w/ 0 delay for immediate scanning. Only compile tested. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Stanislav Yakovlev <stas.yakovlev@gmail.com> Cc: linux-wireless@vger.kernel.org
Diffstat (limited to 'drivers/net/wireless/ipw2x00/ipw2200.c')
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2200.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
index 844f201b7b7..2c2d6db0536 100644
--- a/drivers/net/wireless/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
@@ -4480,18 +4480,11 @@ static void handle_scan_event(struct ipw_priv *priv)
{
/* Only userspace-requested scan completion events go out immediately */
if (!priv->user_requested_scan) {
- if (!delayed_work_pending(&priv->scan_event))
- schedule_delayed_work(&priv->scan_event,
- round_jiffies_relative(msecs_to_jiffies(4000)));
+ schedule_delayed_work(&priv->scan_event,
+ round_jiffies_relative(msecs_to_jiffies(4000)));
} else {
- union iwreq_data wrqu;
-
priv->user_requested_scan = 0;
- cancel_delayed_work(&priv->scan_event);
-
- wrqu.data.length = 0;
- wrqu.data.flags = 0;
- wireless_send_event(priv->net_dev, SIOCGIWSCAN, &wrqu, NULL);
+ mod_delayed_work(system_wq, &priv->scan_event, 0);
}
}