diff options
| author | 2014-05-15 22:49:16 +0100 | |
|---|---|---|
| committer | 2014-05-15 15:02:19 -0700 | |
| commit | 3bc552a1a0757d97cdbb04227536c101848b6a94 (patch) | |
| tree | 91e60ae16258fc61db03ace3a79b4b81fb90ce9c | |
| parent | staging: vt6656: lock changes: csMgmt_xmit. (diff) | |
staging: vt6656: lock changes: vDMA0_tx_80211
vDMA0_tx_80211 is atomically called.
RFbSetPower can not be called atomically.
If wCurrentRate is different to pDevice->wCurrentRate call
bScheduleCommand WLAN_CMD_SETPOWER.
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | drivers/staging/vt6656/rxtx.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/staging/vt6656/rxtx.c b/drivers/staging/vt6656/rxtx.c index c6ac263a7cb9..7287467c3aff 100644 --- a/drivers/staging/vt6656/rxtx.c +++ b/drivers/staging/vt6656/rxtx.c @@ -1781,11 +1781,11 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb) // 2004.11.11 Kyle -- Using OFDM power to tx MngPkt will decrease the connection capability. // And cmd timer will wait data pkt TX finish before scanning so it's OK // to set power here. - if (pMgmt->eScanState != WMAC_NO_SCANNING) { - RFbSetPower(pDevice, wCurrentRate, pDevice->byCurrentCh); - } else { - RFbSetPower(pDevice, wCurrentRate, pMgmt->uCurrChannel); - } + if (wCurrentRate != pDevice->wCurrentRate) { + pDevice->wCurrentRate = wCurrentRate; + + bScheduleCommand(pDevice, WLAN_CMD_SETPOWER, NULL); + } DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"vDMA0_tx_80211: p80211Header->sA3.wFrameCtl = %x \n", p80211Header->sA3.wFrameCtl); |
