Signed-off-by: Mike McCormack <[email protected]>
---
drivers/staging/rtl8192e/r8190_rtl8256.c | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/rtl8192e/r8190_rtl8256.c
b/drivers/staging/rtl8192e/r8190_rtl8256.c
index 8b18208..40a169d 100644
--- a/drivers/staging/rtl8192e/r8190_rtl8256.c
+++ b/drivers/staging/rtl8192e/r8190_rtl8256.c
@@ -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 )
@@ -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);
@@ -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;
}
--
1.7.0.4
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel