diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/virtual.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/virtual.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/virtual.c b/drivers/net/wireless/ath/ath9k/virtual.c index 105ad40968f..fd20241f57d 100644 --- a/drivers/net/wireless/ath/ath9k/virtual.c +++ b/drivers/net/wireless/ath/ath9k/virtual.c @@ -219,7 +219,7 @@ static int ath9k_send_nullfunc(struct ath_wiphy *aphy,  	info->control.rates[1].idx = -1;  	memset(&txctl, 0, sizeof(struct ath_tx_control)); -	txctl.txq = &sc->tx.txq[sc->tx.hwq_map[ATH9K_WME_AC_VO]]; +	txctl.txq = &sc->tx.txq[sc->tx.hwq_map[WME_AC_VO]];  	txctl.frame_type = ps ? ATH9K_IFT_PAUSE : ATH9K_IFT_UNPAUSE;  	if (ath_tx_start(aphy->hw, skb, &txctl) != 0) @@ -695,16 +695,18 @@ void ath9k_set_wiphy_idle(struct ath_wiphy *aphy, bool idle)  		  idle ? "idle" : "not-idle");  }  /* Only bother starting a queue on an active virtual wiphy */ -void ath_mac80211_start_queue(struct ath_softc *sc, u16 skb_queue) +bool ath_mac80211_start_queue(struct ath_softc *sc, u16 skb_queue)  {  	struct ieee80211_hw *hw = sc->pri_wiphy->hw;  	unsigned int i; +	bool txq_started = false;  	spin_lock_bh(&sc->wiphy_lock);  	/* Start the primary wiphy */  	if (sc->pri_wiphy->state == ATH_WIPHY_ACTIVE) {  		ieee80211_wake_queue(hw, skb_queue); +		txq_started = true;  		goto unlock;  	} @@ -718,11 +720,13 @@ void ath_mac80211_start_queue(struct ath_softc *sc, u16 skb_queue)  		hw = aphy->hw;  		ieee80211_wake_queue(hw, skb_queue); +		txq_started = true;  		break;  	}  unlock:  	spin_unlock_bh(&sc->wiphy_lock); +	return txq_started;  }  /* Go ahead and propagate information to all virtual wiphys, it won't hurt */  |