iwlwifi: remove bg_up work

There's no need to queue a work struct from
within a work struct, just move the code to
execute directly.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
This commit is contained in:
Johannes Berg 2010-01-21 06:07:17 -08:00 committed by Reinette Chatre
parent 9f1f3ceacb
commit 80676518da
3 changed files with 14 additions and 29 deletions

View File

@ -2439,18 +2439,6 @@ static void iwl_bg_run_time_calib_work(struct work_struct *work)
return; return;
} }
static void iwl_bg_up(struct work_struct *data)
{
struct iwl_priv *priv = container_of(data, struct iwl_priv, up);
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
return;
mutex_lock(&priv->mutex);
__iwl_up(priv);
mutex_unlock(&priv->mutex);
}
static void iwl_bg_restart(struct work_struct *data) static void iwl_bg_restart(struct work_struct *data)
{ {
struct iwl_priv *priv = container_of(data, struct iwl_priv, restart); struct iwl_priv *priv = container_of(data, struct iwl_priv, restart);
@ -2467,7 +2455,13 @@ static void iwl_bg_restart(struct work_struct *data)
ieee80211_restart_hw(priv->hw); ieee80211_restart_hw(priv->hw);
} else { } else {
iwl_down(priv); iwl_down(priv);
queue_work(priv->workqueue, &priv->up);
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
return;
mutex_lock(&priv->mutex);
__iwl_up(priv);
mutex_unlock(&priv->mutex);
} }
} }
@ -3285,7 +3279,6 @@ static void iwl_setup_deferred_work(struct iwl_priv *priv)
init_waitqueue_head(&priv->wait_command_queue); init_waitqueue_head(&priv->wait_command_queue);
INIT_WORK(&priv->up, iwl_bg_up);
INIT_WORK(&priv->restart, iwl_bg_restart); INIT_WORK(&priv->restart, iwl_bg_restart);
INIT_WORK(&priv->rx_replenish, iwl_bg_rx_replenish); INIT_WORK(&priv->rx_replenish, iwl_bg_rx_replenish);
INIT_WORK(&priv->beacon_update, iwl_bg_beacon_update); INIT_WORK(&priv->beacon_update, iwl_bg_beacon_update);

View File

@ -1264,7 +1264,6 @@ struct iwl_priv {
struct workqueue_struct *workqueue; struct workqueue_struct *workqueue;
struct work_struct up;
struct work_struct restart; struct work_struct restart;
struct work_struct calibrated_work; struct work_struct calibrated_work;
struct work_struct scan_completed; struct work_struct scan_completed;

View File

@ -3033,18 +3033,6 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex);
} }
static void iwl3945_bg_up(struct work_struct *data)
{
struct iwl_priv *priv = container_of(data, struct iwl_priv, up);
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
return;
mutex_lock(&priv->mutex);
__iwl3945_up(priv);
mutex_unlock(&priv->mutex);
}
static void iwl3945_bg_restart(struct work_struct *data) static void iwl3945_bg_restart(struct work_struct *data)
{ {
struct iwl_priv *priv = container_of(data, struct iwl_priv, restart); struct iwl_priv *priv = container_of(data, struct iwl_priv, restart);
@ -3061,7 +3049,13 @@ static void iwl3945_bg_restart(struct work_struct *data)
ieee80211_restart_hw(priv->hw); ieee80211_restart_hw(priv->hw);
} else { } else {
iwl3945_down(priv); iwl3945_down(priv);
queue_work(priv->workqueue, &priv->up);
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
return;
mutex_lock(&priv->mutex);
__iwl3945_up(priv);
mutex_unlock(&priv->mutex);
} }
} }
@ -3782,7 +3776,6 @@ static void iwl3945_setup_deferred_work(struct iwl_priv *priv)
init_waitqueue_head(&priv->wait_command_queue); init_waitqueue_head(&priv->wait_command_queue);
INIT_WORK(&priv->up, iwl3945_bg_up);
INIT_WORK(&priv->restart, iwl3945_bg_restart); INIT_WORK(&priv->restart, iwl3945_bg_restart);
INIT_WORK(&priv->rx_replenish, iwl3945_bg_rx_replenish); INIT_WORK(&priv->rx_replenish, iwl3945_bg_rx_replenish);
INIT_WORK(&priv->beacon_update, iwl3945_bg_beacon_update); INIT_WORK(&priv->beacon_update, iwl3945_bg_beacon_update);