* [PATCH 04/25] ipw2x00: simplify scan_event handling
[not found] <1356141435-17340-1-git-send-email-tj@kernel.org>
@ 2012-12-22 1:56 ` Tejun Heo
2013-01-27 21:02 ` Stanislav Yakovlev
2012-12-22 1:56 ` [PATCH 06/25] libertas: don't use [delayed_]work_pending() Tejun Heo
` (3 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: Tejun Heo @ 2012-12-22 1:56 UTC (permalink / raw)
To: linux-kernel; +Cc: Tejun Heo, Stanislav Yakovlev, linux-wireless
* 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>
Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
Cc: linux-wireless@vger.kernel.org
---
Please let me know how this patch should be routed. I can take it
through the workqueue tree if necessary.
Thanks.
drivers/net/wireless/ipw2x00/ipw2100.c | 31 ++++++++-----------------------
drivers/net/wireless/ipw2x00/ipw2100.h | 3 +--
drivers/net/wireless/ipw2x00/ipw2200.c | 13 +++----------
3 files changed, 12 insertions(+), 35 deletions(-)
diff --git a/drivers/net/wireless/ipw2x00/ipw2100.c b/drivers/net/wireless/ipw2x00/ipw2100.c
index d92b21a..b3ab7b7 100644
--- a/drivers/net/wireless/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
@@ -2181,9 +2181,10 @@ static void isr_indicate_rf_kill(struct ipw2100_priv *priv, u32 status)
mod_delayed_work(system_wq, &priv->rf_kill, round_jiffies_relative(HZ));
}
-static void send_scan_event(void *data)
+static void ipw2100_scan_event(struct work_struct *work)
{
- struct ipw2100_priv *priv = data;
+ struct ipw2100_priv *priv = container_of(work, struct ipw2100_priv,
+ scan_event.work);
union iwreq_data wrqu;
wrqu.data.length = 0;
@@ -2191,18 +2192,6 @@ static void send_scan_event(void *data)
wireless_send_event(priv->net_dev, SIOCGIWSCAN, &wrqu, NULL);
}
-static void ipw2100_scan_event_later(struct work_struct *work)
-{
- send_scan_event(container_of(work, struct ipw2100_priv,
- scan_event_later.work));
-}
-
-static void ipw2100_scan_event_now(struct work_struct *work)
-{
- send_scan_event(container_of(work, struct ipw2100_priv,
- scan_event_now));
-}
-
static void isr_scan_complete(struct ipw2100_priv *priv, u32 status)
{
IPW_DEBUG_SCAN("scan complete\n");
@@ -2212,13 +2201,11 @@ static void isr_scan_complete(struct ipw2100_priv *priv, u32 status)
/* Only userspace-requested scan completion events go out immediately */
if (!priv->user_requested_scan) {
- if (!delayed_work_pending(&priv->scan_event_later))
- schedule_delayed_work(&priv->scan_event_later,
- round_jiffies_relative(msecs_to_jiffies(4000)));
+ schedule_delayed_work(&priv->scan_event,
+ round_jiffies_relative(msecs_to_jiffies(4000)));
} else {
priv->user_requested_scan = 0;
- cancel_delayed_work(&priv->scan_event_later);
- schedule_work(&priv->scan_event_now);
+ mod_delayed_work(system_wq, &priv->scan_event, 0);
}
}
@@ -4459,8 +4446,7 @@ static void ipw2100_kill_works(struct ipw2100_priv *priv)
cancel_delayed_work_sync(&priv->wx_event_work);
cancel_delayed_work_sync(&priv->hang_check);
cancel_delayed_work_sync(&priv->rf_kill);
- cancel_work_sync(&priv->scan_event_now);
- cancel_delayed_work_sync(&priv->scan_event_later);
+ cancel_delayed_work_sync(&priv->scan_event);
}
static int ipw2100_tx_allocate(struct ipw2100_priv *priv)
@@ -6195,8 +6181,7 @@ static struct net_device *ipw2100_alloc_device(struct pci_dev *pci_dev,
INIT_DELAYED_WORK(&priv->wx_event_work, ipw2100_wx_event_work);
INIT_DELAYED_WORK(&priv->hang_check, ipw2100_hang_check);
INIT_DELAYED_WORK(&priv->rf_kill, ipw2100_rf_kill);
- INIT_WORK(&priv->scan_event_now, ipw2100_scan_event_now);
- INIT_DELAYED_WORK(&priv->scan_event_later, ipw2100_scan_event_later);
+ INIT_DELAYED_WORK(&priv->scan_event, ipw2100_scan_event);
tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long))
ipw2100_irq_tasklet, (unsigned long)priv);
diff --git a/drivers/net/wireless/ipw2x00/ipw2100.h b/drivers/net/wireless/ipw2x00/ipw2100.h
index 5fe17cb..c6d7879 100644
--- a/drivers/net/wireless/ipw2x00/ipw2100.h
+++ b/drivers/net/wireless/ipw2x00/ipw2100.h
@@ -577,8 +577,7 @@ struct ipw2100_priv {
struct delayed_work wx_event_work;
struct delayed_work hang_check;
struct delayed_work rf_kill;
- struct work_struct scan_event_now;
- struct delayed_work scan_event_later;
+ struct delayed_work scan_event;
int user_requested_scan;
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
index 844f201..2c2d6db 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);
}
}
--
1.8.0.2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 06/25] libertas: don't use [delayed_]work_pending()
[not found] <1356141435-17340-1-git-send-email-tj@kernel.org>
2012-12-22 1:56 ` [PATCH 04/25] ipw2x00: simplify scan_event handling Tejun Heo
@ 2012-12-22 1:56 ` Tejun Heo
2012-12-22 1:56 ` [PATCH 07/25] mwifiex: " Tejun Heo
` (2 subsequent siblings)
4 siblings, 0 replies; 13+ messages in thread
From: Tejun Heo @ 2012-12-22 1:56 UTC (permalink / raw)
To: linux-kernel; +Cc: Tejun Heo, Dan Williams, libertas-dev, linux-wireless
* delayed_work_pending() test in lbs_cfg_scan() is spurious as
priv->scan_req can't be NULL w/ scan_work pending; otherwise,
lbs_scan_worker() will segfault. Drop it. BTW, the synchronization
around scan_work seems racy. There's nothing synchronizing accesses
to scan related fields in lbs_private.
* Drop work_pending() test from if_sdio_reset_card(). As
work_pending() becomes %false before if_sdio_reset_card_worker()
starts executing, it doesn't really protect anything. reset_host
may change between mmc_remove_host() and mmc_add_host(). Make
if_sdio_reset_card_worker() cache the target mmc_host so that it
isn't affected by if_sdio_reset_card() racing with it.
Only compile tested.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Dan Williams <dcbw@redhat.com>
Cc: libertas-dev@lists.infradead.org
Cc: linux-wireless@vger.kernel.org
---
Please let me know how this patch should be routed. I can take it
through the workqueue tree if necessary.
Thanks.
drivers/net/wireless/libertas/cfg.c | 2 +-
drivers/net/wireless/libertas/if_sdio.c | 9 ++++-----
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c
index ec6d5d6..ec30cd1 100644
--- a/drivers/net/wireless/libertas/cfg.c
+++ b/drivers/net/wireless/libertas/cfg.c
@@ -814,7 +814,7 @@ static int lbs_cfg_scan(struct wiphy *wiphy,
lbs_deb_enter(LBS_DEB_CFG80211);
- if (priv->scan_req || delayed_work_pending(&priv->scan_work)) {
+ if (priv->scan_req) {
/* old scan request not yet processed */
ret = -EAGAIN;
goto out;
diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c
index 739309e..8c53c17 100644
--- a/drivers/net/wireless/libertas/if_sdio.c
+++ b/drivers/net/wireless/libertas/if_sdio.c
@@ -1074,6 +1074,8 @@ static struct mmc_host *reset_host;
static void if_sdio_reset_card_worker(struct work_struct *work)
{
+ struct mmc_host *target = reset_host;
+
/*
* The actual reset operation must be run outside of lbs_thread. This
* is because mmc_remove_host() will cause the device to be instantly
@@ -1085,8 +1087,8 @@ static void if_sdio_reset_card_worker(struct work_struct *work)
*/
pr_info("Resetting card...");
- mmc_remove_host(reset_host);
- mmc_add_host(reset_host);
+ mmc_remove_host(target);
+ mmc_add_host(target);
}
static DECLARE_WORK(card_reset_work, if_sdio_reset_card_worker);
@@ -1094,9 +1096,6 @@ static void if_sdio_reset_card(struct lbs_private *priv)
{
struct if_sdio_card *card = priv->card;
- if (work_pending(&card_reset_work))
- return;
-
reset_host = card->func->card->host;
schedule_work(&card_reset_work);
}
--
1.8.0.2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 07/25] mwifiex: don't use [delayed_]work_pending()
[not found] <1356141435-17340-1-git-send-email-tj@kernel.org>
2012-12-22 1:56 ` [PATCH 04/25] ipw2x00: simplify scan_event handling Tejun Heo
2012-12-22 1:56 ` [PATCH 06/25] libertas: don't use [delayed_]work_pending() Tejun Heo
@ 2012-12-22 1:56 ` Tejun Heo
2012-12-22 22:29 ` Bing Zhao
2012-12-22 1:56 ` [PATCH 09/25] wl1251: " Tejun Heo
2012-12-22 1:57 ` [PATCH 14/25] rfkill: " Tejun Heo
4 siblings, 1 reply; 13+ messages in thread
From: Tejun Heo @ 2012-12-22 1:56 UTC (permalink / raw)
To: linux-kernel; +Cc: Tejun Heo, Bing Zhao, linux-wireless
Drop work_pending() test from mwifiex_sdio_card_reset(). As
work_pending() becomes %false before sdio_card_reset_worker() starts
executing, it doesn't really protect anything. reset_host may change
between mmc_remove_host() and mmc_add_host(). Make
sdio_card_reset_worker() cache the target mmc_host so that it isn't
affected by mwifiex_sdio_card_reset() racing with it.
Only compile tested.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Bing Zhao <bzhao@marvell.com>
Cc: linux-wireless@vger.kernel.org
---
Please let me know how this patch should be routed. I can take it
through the workqueue tree if necessary.
Thanks.
drivers/net/wireless/mwifiex/sdio.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
index 5a1c1d0..f2874c3 100644
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
@@ -1752,6 +1752,8 @@ mwifiex_update_mp_end_port(struct mwifiex_adapter *adapter, u16 port)
static struct mmc_host *reset_host;
static void sdio_card_reset_worker(struct work_struct *work)
{
+ struct mmc_host *target = reset_host;
+
/* The actual reset operation must be run outside of driver thread.
* This is because mmc_remove_host() will cause the device to be
* instantly destroyed, and the driver then needs to end its thread,
@@ -1761,10 +1763,10 @@ static void sdio_card_reset_worker(struct work_struct *work)
*/
pr_err("Resetting card...\n");
- mmc_remove_host(reset_host);
+ mmc_remove_host(target);
/* 20ms delay is based on experiment with sdhci controller */
mdelay(20);
- mmc_add_host(reset_host);
+ mmc_add_host(target);
}
static DECLARE_WORK(card_reset_work, sdio_card_reset_worker);
@@ -1773,9 +1775,6 @@ static void mwifiex_sdio_card_reset(struct mwifiex_adapter *adapter)
{
struct sdio_mmc_card *card = adapter->card;
- if (work_pending(&card_reset_work))
- return;
-
reset_host = card->func->card->host;
schedule_work(&card_reset_work);
}
--
1.8.0.2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 09/25] wl1251: don't use [delayed_]work_pending()
[not found] <1356141435-17340-1-git-send-email-tj@kernel.org>
` (2 preceding siblings ...)
2012-12-22 1:56 ` [PATCH 07/25] mwifiex: " Tejun Heo
@ 2012-12-22 1:56 ` Tejun Heo
2012-12-22 14:14 ` Luciano Coelho
2012-12-22 1:57 ` [PATCH 14/25] rfkill: " Tejun Heo
4 siblings, 1 reply; 13+ messages in thread
From: Tejun Heo @ 2012-12-22 1:56 UTC (permalink / raw)
To: linux-kernel; +Cc: Tejun Heo, Luciano Coelho, linux-wireless
There's no need to test whether a (delayed) work item in pending
before queueing, flushing or cancelling it. Most uses are unnecessary
and quite a few of them are buggy.
Remove unnecessary pending tests from wl1251. Only compile tested.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Luciano Coelho <coelho@ti.com>
Cc: linux-wireless@vger.kernel.org
---
Please let me know how this patch should be routed. I can take it
through the workqueue tree if necessary.
Thanks.
drivers/net/wireless/ti/wl1251/ps.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ti/wl1251/ps.c b/drivers/net/wireless/ti/wl1251/ps.c
index db719f7..b9e27b9 100644
--- a/drivers/net/wireless/ti/wl1251/ps.c
+++ b/drivers/net/wireless/ti/wl1251/ps.c
@@ -68,8 +68,7 @@ int wl1251_ps_elp_wakeup(struct wl1251 *wl)
unsigned long timeout, start;
u32 elp_reg;
- if (delayed_work_pending(&wl->elp_work))
- cancel_delayed_work(&wl->elp_work);
+ cancel_delayed_work(&wl->elp_work);
if (!wl->elp)
return 0;
--
1.8.0.2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 14/25] rfkill: don't use [delayed_]work_pending()
[not found] <1356141435-17340-1-git-send-email-tj@kernel.org>
` (3 preceding siblings ...)
2012-12-22 1:56 ` [PATCH 09/25] wl1251: " Tejun Heo
@ 2012-12-22 1:57 ` Tejun Heo
2012-12-22 20:22 ` Johannes Berg
4 siblings, 1 reply; 13+ messages in thread
From: Tejun Heo @ 2012-12-22 1:57 UTC (permalink / raw)
To: linux-kernel; +Cc: Tejun Heo, John W. Linville, linux-wireless
There's no need to test whether a (delayed) work item in pending
before queueing, flushing or cancelling it. Most uses are unnecessary
and quite a few of them are buggy.
Remove unnecessary pending tests from rfkill. Only compile
tested.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: "John W. Linville" <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
---
Please let me know how this patch should be routed. I can take it
through the workqueue tree if necessary.
Thanks.
net/rfkill/input.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/net/rfkill/input.c b/net/rfkill/input.c
index c9d931e..b85107b 100644
--- a/net/rfkill/input.c
+++ b/net/rfkill/input.c
@@ -148,11 +148,9 @@ static unsigned long rfkill_ratelimit(const unsigned long last)
static void rfkill_schedule_ratelimited(void)
{
- if (delayed_work_pending(&rfkill_op_work))
- return;
- schedule_delayed_work(&rfkill_op_work,
- rfkill_ratelimit(rfkill_last_scheduled));
- rfkill_last_scheduled = jiffies;
+ if (schedule_delayed_work(&rfkill_op_work,
+ rfkill_ratelimit(rfkill_last_scheduled)))
+ rfkill_last_scheduled = jiffies;
}
static void rfkill_schedule_global_op(enum rfkill_sched_op op)
--
1.8.0.2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 09/25] wl1251: don't use [delayed_]work_pending()
2012-12-22 1:56 ` [PATCH 09/25] wl1251: " Tejun Heo
@ 2012-12-22 14:14 ` Luciano Coelho
2012-12-28 21:42 ` Tejun Heo
0 siblings, 1 reply; 13+ messages in thread
From: Luciano Coelho @ 2012-12-22 14:14 UTC (permalink / raw)
To: Tejun Heo; +Cc: linux-kernel, linux-wireless
On Fri, 2012-12-21 at 17:56 -0800, Tejun Heo wrote:
> There's no need to test whether a (delayed) work item in pending
> before queueing, flushing or cancelling it. Most uses are unnecessary
> and quite a few of them are buggy.
>
> Remove unnecessary pending tests from wl1251. Only compile tested.
>
> Signed-off-by: Tejun Heo <tj@kernel.org>
> Cc: Luciano Coelho <coelho@ti.com>
> Cc: linux-wireless@vger.kernel.org
> ---
> Please let me know how this patch should be routed. I can take it
> through the workqueue tree if necessary.
>
> Thanks.
It's probably easier if you take it via your tree. This driver doesn't
get patches very often, so I doubt there will be any conflicts.
Thank you!
Acked-by: Luciano Coelho <coelho@ti.com>
--
Luca.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 14/25] rfkill: don't use [delayed_]work_pending()
2012-12-22 1:57 ` [PATCH 14/25] rfkill: " Tejun Heo
@ 2012-12-22 20:22 ` Johannes Berg
2012-12-28 21:42 ` Tejun Heo
0 siblings, 1 reply; 13+ messages in thread
From: Johannes Berg @ 2012-12-22 20:22 UTC (permalink / raw)
To: Tejun Heo; +Cc: linux-kernel, John W. Linville, linux-wireless
On Fri, 2012-12-21 at 17:57 -0800, Tejun Heo wrote:
> There's no need to test whether a (delayed) work item in pending
> before queueing, flushing or cancelling it. Most uses are unnecessary
> and quite a few of them are buggy.
>
> Remove unnecessary pending tests from rfkill. Only compile
> tested.
Looks fine to me, feel free to route through your tree -- nobody changes
rfkill much (famous last words...) :-)
johannes
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 07/25] mwifiex: don't use [delayed_]work_pending()
2012-12-22 1:56 ` [PATCH 07/25] mwifiex: " Tejun Heo
@ 2012-12-22 22:29 ` Bing Zhao
2012-12-28 21:41 ` Tejun Heo
0 siblings, 1 reply; 13+ messages in thread
From: Bing Zhao @ 2012-12-22 22:29 UTC (permalink / raw)
To: Tejun Heo, linux-kernel@vger.kernel.org; +Cc: linux-wireless@vger.kernel.org
Hi Tejun,
Thanks for the patch.
> Drop work_pending() test from mwifiex_sdio_card_reset(). As
> work_pending() becomes %false before sdio_card_reset_worker() starts
> executing, it doesn't really protect anything. reset_host may change
> between mmc_remove_host() and mmc_add_host(). Make
> sdio_card_reset_worker() cache the target mmc_host so that it isn't
> affected by mwifiex_sdio_card_reset() racing with it.
>
> Only compile tested.
>
> Signed-off-by: Tejun Heo <tj@kernel.org>
> Cc: Bing Zhao <bzhao@marvell.com>
> Cc: linux-wireless@vger.kernel.org
Acked-by: Bing Zhao <bzhao@marvell.com>
> ---
> Please let me know how this patch should be routed. I can take it
> through the workqueue tree if necessary.
If you are taking other patches in this series through your tree, please take this one too.
Thanks,
Bing
>
> Thanks.
>
> drivers/net/wireless/mwifiex/sdio.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
> index 5a1c1d0..f2874c3 100644
> --- a/drivers/net/wireless/mwifiex/sdio.c
> +++ b/drivers/net/wireless/mwifiex/sdio.c
> @@ -1752,6 +1752,8 @@ mwifiex_update_mp_end_port(struct mwifiex_adapter *adapter, u16 port)
> static struct mmc_host *reset_host;
> static void sdio_card_reset_worker(struct work_struct *work)
> {
> + struct mmc_host *target = reset_host;
> +
> /* The actual reset operation must be run outside of driver thread.
> * This is because mmc_remove_host() will cause the device to be
> * instantly destroyed, and the driver then needs to end its thread,
> @@ -1761,10 +1763,10 @@ static void sdio_card_reset_worker(struct work_struct *work)
> */
>
> pr_err("Resetting card...\n");
> - mmc_remove_host(reset_host);
> + mmc_remove_host(target);
> /* 20ms delay is based on experiment with sdhci controller */
> mdelay(20);
> - mmc_add_host(reset_host);
> + mmc_add_host(target);
> }
> static DECLARE_WORK(card_reset_work, sdio_card_reset_worker);
>
> @@ -1773,9 +1775,6 @@ static void mwifiex_sdio_card_reset(struct mwifiex_adapter *adapter)
> {
> struct sdio_mmc_card *card = adapter->card;
>
> - if (work_pending(&card_reset_work))
> - return;
> -
> reset_host = card->func->card->host;
> schedule_work(&card_reset_work);
> }
> --
> 1.8.0.2
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 07/25] mwifiex: don't use [delayed_]work_pending()
2012-12-22 22:29 ` Bing Zhao
@ 2012-12-28 21:41 ` Tejun Heo
0 siblings, 0 replies; 13+ messages in thread
From: Tejun Heo @ 2012-12-28 21:41 UTC (permalink / raw)
To: Bing Zhao; +Cc: linux-kernel@vger.kernel.org, linux-wireless@vger.kernel.org
On Sat, Dec 22, 2012 at 02:29:57PM -0800, Bing Zhao wrote:
> Hi Tejun,
>
> Thanks for the patch.
>
> > Drop work_pending() test from mwifiex_sdio_card_reset(). As
> > work_pending() becomes %false before sdio_card_reset_worker() starts
> > executing, it doesn't really protect anything. reset_host may change
> > between mmc_remove_host() and mmc_add_host(). Make
> > sdio_card_reset_worker() cache the target mmc_host so that it isn't
> > affected by mwifiex_sdio_card_reset() racing with it.
> >
> > Only compile tested.
> >
> > Signed-off-by: Tejun Heo <tj@kernel.org>
> > Cc: Bing Zhao <bzhao@marvell.com>
> > Cc: linux-wireless@vger.kernel.org
>
> Acked-by: Bing Zhao <bzhao@marvell.com>
>
> > ---
> > Please let me know how this patch should be routed. I can take it
> > through the workqueue tree if necessary.
>
> If you are taking other patches in this series through your tree, please take this one too.
Applied to wq/for-3.9-cleanups.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 09/25] wl1251: don't use [delayed_]work_pending()
2012-12-22 14:14 ` Luciano Coelho
@ 2012-12-28 21:42 ` Tejun Heo
0 siblings, 0 replies; 13+ messages in thread
From: Tejun Heo @ 2012-12-28 21:42 UTC (permalink / raw)
To: Luciano Coelho; +Cc: linux-kernel, linux-wireless
On Sat, Dec 22, 2012 at 04:14:29PM +0200, Luciano Coelho wrote:
> On Fri, 2012-12-21 at 17:56 -0800, Tejun Heo wrote:
> > There's no need to test whether a (delayed) work item in pending
> > before queueing, flushing or cancelling it. Most uses are unnecessary
> > and quite a few of them are buggy.
> >
> > Remove unnecessary pending tests from wl1251. Only compile tested.
> >
> > Signed-off-by: Tejun Heo <tj@kernel.org>
> > Cc: Luciano Coelho <coelho@ti.com>
> > Cc: linux-wireless@vger.kernel.org
> > ---
> > Please let me know how this patch should be routed. I can take it
> > through the workqueue tree if necessary.
> >
> > Thanks.
>
> It's probably easier if you take it via your tree. This driver doesn't
> get patches very often, so I doubt there will be any conflicts.
>
> Thank you!
>
> Acked-by: Luciano Coelho <coelho@ti.com>
Applied to wq/for-3.9-cleanups. Thanks.
--
tejun
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 14/25] rfkill: don't use [delayed_]work_pending()
2012-12-22 20:22 ` Johannes Berg
@ 2012-12-28 21:42 ` Tejun Heo
0 siblings, 0 replies; 13+ messages in thread
From: Tejun Heo @ 2012-12-28 21:42 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-kernel, John W. Linville, linux-wireless
On Sat, Dec 22, 2012 at 09:22:13PM +0100, Johannes Berg wrote:
> On Fri, 2012-12-21 at 17:57 -0800, Tejun Heo wrote:
> > There's no need to test whether a (delayed) work item in pending
> > before queueing, flushing or cancelling it. Most uses are unnecessary
> > and quite a few of them are buggy.
> >
> > Remove unnecessary pending tests from rfkill. Only compile
> > tested.
>
> Looks fine to me, feel free to route through your tree -- nobody changes
> rfkill much (famous last words...) :-)
Applied to wq/for-3.9-cleanups w/ your Acked-by added. Thanks.
--
tejun
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 04/25] ipw2x00: simplify scan_event handling
2012-12-22 1:56 ` [PATCH 04/25] ipw2x00: simplify scan_event handling Tejun Heo
@ 2013-01-27 21:02 ` Stanislav Yakovlev
2013-02-09 19:31 ` Tejun Heo
0 siblings, 1 reply; 13+ messages in thread
From: Stanislav Yakovlev @ 2013-01-27 21:02 UTC (permalink / raw)
To: Tejun Heo; +Cc: linux-kernel, linux-wireless
Hello, Tejun,
On 22 December 2012 04:56, Tejun Heo <tj@kernel.org> wrote:
> * 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>
> Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
> Cc: linux-wireless@vger.kernel.org
> ---
> Please let me know how this patch should be routed. I can take it
> through the workqueue tree if necessary.
Please, feel free to take it through your tree.
Acked-by: Stanislav Yakovlev <stas.yakovlev@gmail.com>
Thanks!
Stanislav.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 04/25] ipw2x00: simplify scan_event handling
2013-01-27 21:02 ` Stanislav Yakovlev
@ 2013-02-09 19:31 ` Tejun Heo
0 siblings, 0 replies; 13+ messages in thread
From: Tejun Heo @ 2013-02-09 19:31 UTC (permalink / raw)
To: Stanislav Yakovlev; +Cc: linux-kernel, linux-wireless
On Mon, Jan 28, 2013 at 12:02:27AM +0300, Stanislav Yakovlev wrote:
> Hello, Tejun,
>
> On 22 December 2012 04:56, Tejun Heo <tj@kernel.org> wrote:
> > * 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>
> > Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
> > Cc: linux-wireless@vger.kernel.org
> > ---
> > Please let me know how this patch should be routed. I can take it
> > through the workqueue tree if necessary.
>
> Please, feel free to take it through your tree.
>
> Acked-by: Stanislav Yakovlev <stas.yakovlev@gmail.com>
Queued to wq/for-3.9-cleanups. Thanks!
--
tejun
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2013-02-09 19:31 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1356141435-17340-1-git-send-email-tj@kernel.org>
2012-12-22 1:56 ` [PATCH 04/25] ipw2x00: simplify scan_event handling Tejun Heo
2013-01-27 21:02 ` Stanislav Yakovlev
2013-02-09 19:31 ` Tejun Heo
2012-12-22 1:56 ` [PATCH 06/25] libertas: don't use [delayed_]work_pending() Tejun Heo
2012-12-22 1:56 ` [PATCH 07/25] mwifiex: " Tejun Heo
2012-12-22 22:29 ` Bing Zhao
2012-12-28 21:41 ` Tejun Heo
2012-12-22 1:56 ` [PATCH 09/25] wl1251: " Tejun Heo
2012-12-22 14:14 ` Luciano Coelho
2012-12-28 21:42 ` Tejun Heo
2012-12-22 1:57 ` [PATCH 14/25] rfkill: " Tejun Heo
2012-12-22 20:22 ` Johannes Berg
2012-12-28 21:42 ` Tejun Heo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).