From 5d364c52130fa510429bc28db465fff1a4adc39a Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Thu, 3 Mar 2011 22:40:30 +0900 Subject: [PATCH] --- yaml --- r: 236274 b: refs/heads/master c: 2cb61ea25b49049f9281007f8b534e5d384ebba5 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/staging/rtl8192e/r8190_rtl8256.c | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index e46affcbb3e1..c69762c2b31d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bc54f3393c0563a00c13d2b58aca23ae153bdd3b +refs/heads/master: 2cb61ea25b49049f9281007f8b534e5d384ebba5 diff --git a/trunk/drivers/staging/rtl8192e/r8190_rtl8256.c b/trunk/drivers/staging/rtl8192e/r8190_rtl8256.c index 8b182089b046..40a169df5123 100644 --- a/trunk/drivers/staging/rtl8192e/r8190_rtl8256.c +++ b/trunk/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; }