diff options
| author | David S. Miller <davem@davemloft.net> | 2011-05-05 14:09:28 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-05-05 14:09:28 -0700 | 
| commit | 90864fbc7639d7a2300c67a18c9fb9fbcf7d51d2 (patch) | |
| tree | 6951c8d0e529dbfc7c4cec75d4cec63350e39b7c /drivers/net/wireless/iwlegacy/iwl3945-base.c | |
| parent | 228e548e602061b08ee8e8966f567c12aa079682 (diff) | |
| parent | a70171dce9cd44cb06c7d299eba9fa87a8933045 (diff) | |
| download | olio-linux-3.10-90864fbc7639d7a2300c67a18c9fb9fbcf7d51d2.tar.xz olio-linux-3.10-90864fbc7639d7a2300c67a18c9fb9fbcf7d51d2.zip  | |
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'drivers/net/wireless/iwlegacy/iwl3945-base.c')
| -rw-r--r-- | drivers/net/wireless/iwlegacy/iwl3945-base.c | 22 | 
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/net/wireless/iwlegacy/iwl3945-base.c b/drivers/net/wireless/iwlegacy/iwl3945-base.c index cc7ebcee60e..0ee6be6a9c5 100644 --- a/drivers/net/wireless/iwlegacy/iwl3945-base.c +++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c @@ -2748,11 +2748,12 @@ static void iwl3945_bg_init_alive_start(struct work_struct *data)  	struct iwl_priv *priv =  	    container_of(data, struct iwl_priv, init_alive_start.work); +	mutex_lock(&priv->mutex);  	if (test_bit(STATUS_EXIT_PENDING, &priv->status)) -		return; +		goto out; -	mutex_lock(&priv->mutex);  	iwl3945_init_alive_start(priv); +out:  	mutex_unlock(&priv->mutex);  } @@ -2761,11 +2762,12 @@ static void iwl3945_bg_alive_start(struct work_struct *data)  	struct iwl_priv *priv =  	    container_of(data, struct iwl_priv, alive_start.work); +	mutex_lock(&priv->mutex);  	if (test_bit(STATUS_EXIT_PENDING, &priv->status)) -		return; +		goto out; -	mutex_lock(&priv->mutex);  	iwl3945_alive_start(priv); +out:  	mutex_unlock(&priv->mutex);  } @@ -2995,10 +2997,12 @@ static void iwl3945_bg_restart(struct work_struct *data)  	} else {  		iwl3945_down(priv); -		if (test_bit(STATUS_EXIT_PENDING, &priv->status)) +		mutex_lock(&priv->mutex); +		if (test_bit(STATUS_EXIT_PENDING, &priv->status)) { +			mutex_unlock(&priv->mutex);  			return; +		} -		mutex_lock(&priv->mutex);  		__iwl3945_up(priv);  		mutex_unlock(&priv->mutex);  	} @@ -3009,11 +3013,12 @@ static void iwl3945_bg_rx_replenish(struct work_struct *data)  	struct iwl_priv *priv =  	    container_of(data, struct iwl_priv, rx_replenish); +	mutex_lock(&priv->mutex);  	if (test_bit(STATUS_EXIT_PENDING, &priv->status)) -		return; +		goto out; -	mutex_lock(&priv->mutex);  	iwl3945_rx_replenish(priv); +out:  	mutex_unlock(&priv->mutex);  } @@ -3810,7 +3815,6 @@ static int iwl3945_init_drv(struct iwl_priv *priv)  	INIT_LIST_HEAD(&priv->free_frames);  	mutex_init(&priv->mutex); -	mutex_init(&priv->sync_cmd_mutex);  	priv->ieee_channels = NULL;  	priv->ieee_rates = NULL;  |