Skip to content

Commit

Permalink
staging: rtl8192e: Add a spinlock around SetRFPowerState8190
Browse files Browse the repository at this point in the history
Signed-off-by: Mike McCormack <mikem@ring3k.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Mike McCormack authored and Greg Kroah-Hartman committed Mar 7, 2011
1 parent bc54f33 commit 2cb61ea
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions drivers/staging/rtl8192e/r8190_rtl8256.c
Original file line number Diff line number Diff line change
Expand Up @@ -327,8 +327,11 @@ SetRFPowerState8190(struct net_device *dev, RT_RF_POWER_STATE eRFPowerState)
PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->ieee80211->PowerSaveControl));
bool bResult = true;

if(priv->SetRFPowerStateInProgress == true)
return false;
spin_lock(&priv->ps_lock);
if (priv->SetRFPowerStateInProgress) {
bResult = false;
goto out;
}
priv->SetRFPowerStateInProgress = true;

switch( eRFPowerState )
Expand All @@ -345,8 +348,8 @@ SetRFPowerState8190(struct net_device *dev, RT_RF_POWER_STATE eRFPowerState)
*/
if (!NicIFEnableNIC(dev)) {
RT_TRACE(COMP_ERR, "%s(): NicIFEnableNIC failed\n",__FUNCTION__);
priv->SetRFPowerStateInProgress = false;
return false;
bResult = false;
goto out;
}

RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
Expand Down Expand Up @@ -424,7 +427,9 @@ SetRFPowerState8190(struct net_device *dev, RT_RF_POWER_STATE eRFPowerState)
priv->ieee80211->eRFPowerState = eRFPowerState;
}

out:
priv->SetRFPowerStateInProgress = false;
spin_unlock(&priv->ps_lock);
return bResult;
}

Expand Down

0 comments on commit 2cb61ea

Please sign in to comment.