|
@@ -1345,9 +1345,12 @@ int iwctl_siwpower(struct net_device *dev, struct iw_request_info *info,
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
|
+ spin_lock_irq(&pDevice->lock);
|
|
|
+
|
|
|
if (wrq->disabled) {
|
|
|
pDevice->ePSMode = WMAC_POWER_CAM;
|
|
|
PSvDisablePowerSaving(pDevice);
|
|
|
+ spin_unlock_irq(&pDevice->lock);
|
|
|
return rc;
|
|
|
}
|
|
|
if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) {
|
|
@@ -1358,6 +1361,9 @@ int iwctl_siwpower(struct net_device *dev, struct iw_request_info *info,
|
|
|
pDevice->ePSMode = WMAC_POWER_FAST;
|
|
|
PSvEnablePowerSaving((void *)pDevice, pMgmt->wListenInterval);
|
|
|
}
|
|
|
+
|
|
|
+ spin_unlock_irq(&pDevice->lock);
|
|
|
+
|
|
|
switch (wrq->flags & IW_POWER_MODE) {
|
|
|
case IW_POWER_UNICAST_R:
|
|
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWPOWER: IW_POWER_UNICAST_R \n");
|