|
@@ -2984,15 +2984,15 @@ static void iwl4965_bg_txpower_work(struct work_struct *work)
|
|
|
struct iwl_priv *priv = container_of(work, struct iwl_priv,
|
|
|
txpower_work);
|
|
|
|
|
|
+ mutex_lock(&priv->mutex);
|
|
|
+
|
|
|
/* If a scan happened to start before we got here
|
|
|
* then just return; the statistics notification will
|
|
|
* kick off another scheduled work to compensate for
|
|
|
* any temperature delta we missed here. */
|
|
|
if (test_bit(STATUS_EXIT_PENDING, &priv->status) ||
|
|
|
test_bit(STATUS_SCANNING, &priv->status))
|
|
|
- return;
|
|
|
-
|
|
|
- mutex_lock(&priv->mutex);
|
|
|
+ goto out;
|
|
|
|
|
|
/* Regardless of if we are associated, we must reconfigure the
|
|
|
* TX power since frames can be sent on non-radar channels while
|
|
@@ -3002,7 +3002,7 @@ static void iwl4965_bg_txpower_work(struct work_struct *work)
|
|
|
/* Update last_temperature to keep is_calib_needed from running
|
|
|
* when it isn't needed... */
|
|
|
priv->last_temperature = priv->temperature;
|
|
|
-
|
|
|
+out:
|
|
|
mutex_unlock(&priv->mutex);
|
|
|
}
|
|
|
|