diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath5k/base.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath5k/base.c | 31 | 
1 files changed, 11 insertions, 20 deletions
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index 9f31cfa56cc..30ca0a60a64 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c @@ -511,8 +511,9 @@ ath5k_update_bssid_mask_and_opmode(struct ath5k_hw *ah,  		ath5k_vif_iter(&iter_data, vif->addr, vif);  	/* Get list of all active MAC addresses */ -	ieee80211_iterate_active_interfaces_atomic(ah->hw, ath5k_vif_iter, -						   &iter_data); +	ieee80211_iterate_active_interfaces_atomic( +		ah->hw, IEEE80211_IFACE_ITER_RESUME_ALL, +		ath5k_vif_iter, &iter_data);  	memcpy(ah->bssidmask, iter_data.mask, ETH_ALEN);  	ah->opmode = iter_data.opmode; @@ -848,7 +849,7 @@ ath5k_txbuf_free_skb(struct ath5k_hw *ah, struct ath5k_buf *bf)  		return;  	dma_unmap_single(ah->dev, bf->skbaddr, bf->skb->len,  			DMA_TO_DEVICE); -	dev_kfree_skb_any(bf->skb); +	ieee80211_free_txskb(ah->hw, bf->skb);  	bf->skb = NULL;  	bf->skbaddr = 0;  	bf->desc->ds_data = 0; @@ -1335,20 +1336,9 @@ ath5k_receive_frame(struct ath5k_hw *ah, struct sk_buff *skb,  	 * 15bit only. that means TSF extension has to be done within  	 * 32768usec (about 32ms). it might be necessary to move this to  	 * the interrupt handler, like it is done in madwifi. -	 * -	 * Unfortunately we don't know when the hardware takes the rx -	 * timestamp (beginning of phy frame, data frame, end of rx?). -	 * The only thing we know is that it is hardware specific... -	 * On AR5213 it seems the rx timestamp is at the end of the -	 * frame, but I'm not sure. -	 * -	 * NOTE: mac80211 defines mactime at the beginning of the first -	 * data symbol. Since we don't have any time references it's -	 * impossible to comply to that. This affects IBSS merge only -	 * right now, so it's not too bad...  	 */  	rxs->mactime = ath5k_extend_tsf(ah, rs->rs_tstamp); -	rxs->flag |= RX_FLAG_MACTIME_MPDU; +	rxs->flag |= RX_FLAG_MACTIME_END;  	rxs->freq = ah->curchan->center_freq;  	rxs->band = ah->curchan->band; @@ -1575,7 +1565,7 @@ ath5k_tx_queue(struct ieee80211_hw *hw, struct sk_buff *skb,  	return;  drop_packet: -	dev_kfree_skb_any(skb); +	ieee80211_free_txskb(hw, skb);  }  static void @@ -2434,7 +2424,7 @@ static const struct ieee80211_iface_combination if_comb = {  	.num_different_channels = 1,  }; -int __devinit +int  ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops)  {  	struct ieee80211_hw *hw = ah->hw; @@ -2860,7 +2850,7 @@ static void ath5k_reset_work(struct work_struct *work)  	mutex_unlock(&ah->lock);  } -static int __devinit +static int  ath5k_init(struct ieee80211_hw *hw)  { @@ -3045,8 +3035,9 @@ ath5k_any_vif_assoc(struct ath5k_hw *ah)  	iter_data.need_set_hw_addr = false;  	iter_data.found_active = true; -	ieee80211_iterate_active_interfaces_atomic(ah->hw, ath5k_vif_iter, -						   &iter_data); +	ieee80211_iterate_active_interfaces_atomic( +		ah->hw, IEEE80211_IFACE_ITER_RESUME_ALL, +		ath5k_vif_iter, &iter_data);  	return iter_data.any_assoc;  }  |