diff options
| author | Johannes Berg <johannes@sipsolutions.net> | 2008-04-29 17:18:59 +0200 | 
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2008-05-07 15:02:26 -0400 | 
| commit | 57ffc589a92424f9def74fe0d49b2f7763ff07fd (patch) | |
| tree | 2ec3f60cac2e5757206dee219e7b3a60ded13004 /drivers/net | |
| parent | 3e0d4cb12f6fd97193a455b49125398b2231c87c (diff) | |
| download | olio-linux-3.10-57ffc589a92424f9def74fe0d49b2f7763ff07fd.tar.xz olio-linux-3.10-57ffc589a92424f9def74fe0d49b2f7763ff07fd.zip  | |
mac80211: clean up get_tx_stats callback
The callback takes a ieee80211_tx_queue_stats with a contained
array of ieee80211_tx_queue_stats_data, remove the former, rename
the latter to ieee80211_tx_queue_stats and make tx_stats() take
the array directly.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
| -rw-r--r-- | drivers/net/wireless/adm8211.c | 7 | ||||
| -rw-r--r-- | drivers/net/wireless/ath5k/base.c | 8 | ||||
| -rw-r--r-- | drivers/net/wireless/ath5k/base.h | 3 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/dma.c | 8 | ||||
| -rw-r--r-- | drivers/net/wireless/b43/pio.c | 8 | ||||
| -rw-r--r-- | drivers/net/wireless/b43legacy/dma.c | 8 | ||||
| -rw-r--r-- | drivers/net/wireless/b43legacy/pio.c | 8 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 6 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 6 | ||||
| -rw-r--r-- | drivers/net/wireless/p54/p54.h | 2 | ||||
| -rw-r--r-- | drivers/net/wireless/p54/p54common.c | 24 | ||||
| -rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00mac.c | 6 | 
12 files changed, 41 insertions, 53 deletions
diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c index 5c0d2b08275..d93a1de77eb 100644 --- a/drivers/net/wireless/adm8211.c +++ b/drivers/net/wireless/adm8211.c @@ -306,11 +306,10 @@ static int adm8211_get_tx_stats(struct ieee80211_hw *dev,  				struct ieee80211_tx_queue_stats *stats)  {  	struct adm8211_priv *priv = dev->priv; -	struct ieee80211_tx_queue_stats_data *data = &stats->data[0]; -	data->len = priv->cur_tx - priv->dirty_tx; -	data->limit = priv->tx_ring_size - 2; -	data->count = priv->dirty_tx; +	stats[0].len = priv->cur_tx - priv->dirty_tx; +	stats[0].limit = priv->tx_ring_size - 2; +	stats[0].count = priv->dirty_tx;  	return 0;  } diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c index 3854619f351..3201c160434 100644 --- a/drivers/net/wireless/ath5k/base.c +++ b/drivers/net/wireless/ath5k/base.c @@ -1335,7 +1335,7 @@ ath5k_txbuf_setup(struct ath5k_softc *sc, struct ath5k_buf *bf,  	spin_lock_bh(&txq->lock);  	list_add_tail(&bf->list, &txq->q); -	sc->tx_stats.data[txq->qnum].len++; +	sc->tx_stats[txq->qnum].len++;  	if (txq->link == NULL) /* is this first packet? */  		ath5k_hw_put_tx_buf(ah, txq->qnum, bf->daddr);  	else /* no, so only link it */ @@ -1566,7 +1566,7 @@ ath5k_txq_drainq(struct ath5k_softc *sc, struct ath5k_txq *txq)  		ath5k_txbuf_free(sc, bf);  		spin_lock_bh(&sc->txbuflock); -		sc->tx_stats.data[txq->qnum].len--; +		sc->tx_stats[txq->qnum].len--;  		list_move_tail(&bf->list, &sc->txbuf);  		sc->txbuf_len++;  		spin_unlock_bh(&sc->txbuflock); @@ -1979,10 +1979,10 @@ ath5k_tx_processq(struct ath5k_softc *sc, struct ath5k_txq *txq)  		}  		ieee80211_tx_status(sc->hw, skb, &txs); -		sc->tx_stats.data[txq->qnum].count++; +		sc->tx_stats[txq->qnum].count++;  		spin_lock(&sc->txbuflock); -		sc->tx_stats.data[txq->qnum].len--; +		sc->tx_stats[txq->qnum].len--;  		list_move_tail(&bf->list, &sc->txbuf);  		sc->txbuf_len++;  		spin_unlock(&sc->txbuflock); diff --git a/drivers/net/wireless/ath5k/base.h b/drivers/net/wireless/ath5k/base.h index 3a975589301..ecb17495488 100644 --- a/drivers/net/wireless/ath5k/base.h +++ b/drivers/net/wireless/ath5k/base.h @@ -92,7 +92,8 @@ struct ath5k_softc {  	struct pci_dev		*pdev;		/* for dma mapping */  	void __iomem		*iobase;	/* address of the device */  	struct mutex		lock;		/* dev-level lock */ -	struct ieee80211_tx_queue_stats tx_stats; +	/* FIXME: how many does it really need? */ +	struct ieee80211_tx_queue_stats tx_stats[16];  	struct ieee80211_low_level_stats ll_stats;  	struct ieee80211_hw	*hw;		/* IEEE 802.11 common */  	struct ieee80211_supported_band sbands[IEEE80211_NUM_BANDS]; diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c index 6dcbb3c87e7..f50e2014ffb 100644 --- a/drivers/net/wireless/b43/dma.c +++ b/drivers/net/wireless/b43/dma.c @@ -1427,18 +1427,16 @@ void b43_dma_get_tx_stats(struct b43_wldev *dev,  {  	const int nr_queues = dev->wl->hw->queues;  	struct b43_dmaring *ring; -	struct ieee80211_tx_queue_stats_data *data;  	unsigned long flags;  	int i;  	for (i = 0; i < nr_queues; i++) { -		data = &(stats->data[i]);  		ring = select_ring_by_priority(dev, i);  		spin_lock_irqsave(&ring->lock, flags); -		data->len = ring->used_slots / SLOTS_PER_PACKET; -		data->limit = ring->nr_slots / SLOTS_PER_PACKET; -		data->count = ring->nr_tx_packets; +		stats[i].len = ring->used_slots / SLOTS_PER_PACKET; +		stats[i].limit = ring->nr_slots / SLOTS_PER_PACKET; +		stats[i].count = ring->nr_tx_packets;  		spin_unlock_irqrestore(&ring->lock, flags);  	}  } diff --git a/drivers/net/wireless/b43/pio.c b/drivers/net/wireless/b43/pio.c index fcacafb0434..08c8a087f30 100644 --- a/drivers/net/wireless/b43/pio.c +++ b/drivers/net/wireless/b43/pio.c @@ -611,18 +611,16 @@ void b43_pio_get_tx_stats(struct b43_wldev *dev,  {  	const int nr_queues = dev->wl->hw->queues;  	struct b43_pio_txqueue *q; -	struct ieee80211_tx_queue_stats_data *data;  	unsigned long flags;  	int i;  	for (i = 0; i < nr_queues; i++) { -		data = &(stats->data[i]);  		q = select_queue_by_priority(dev, i);  		spin_lock_irqsave(&q->lock, flags); -		data->len = B43_PIO_MAX_NR_TXPACKETS - q->free_packet_slots; -		data->limit = B43_PIO_MAX_NR_TXPACKETS; -		data->count = q->nr_tx_packets; +		stats[i].len = B43_PIO_MAX_NR_TXPACKETS - q->free_packet_slots; +		stats[i].limit = B43_PIO_MAX_NR_TXPACKETS; +		stats[i].count = q->nr_tx_packets;  		spin_unlock_irqrestore(&q->lock, flags);  	}  } diff --git a/drivers/net/wireless/b43legacy/dma.c b/drivers/net/wireless/b43legacy/dma.c index c990f87b107..d6686f713b6 100644 --- a/drivers/net/wireless/b43legacy/dma.c +++ b/drivers/net/wireless/b43legacy/dma.c @@ -1455,18 +1455,16 @@ void b43legacy_dma_get_tx_stats(struct b43legacy_wldev *dev,  {  	const int nr_queues = dev->wl->hw->queues;  	struct b43legacy_dmaring *ring; -	struct ieee80211_tx_queue_stats_data *data;  	unsigned long flags;  	int i;  	for (i = 0; i < nr_queues; i++) { -		data = &(stats->data[i]);  		ring = priority_to_txring(dev, i);  		spin_lock_irqsave(&ring->lock, flags); -		data->len = ring->used_slots / SLOTS_PER_PACKET; -		data->limit = ring->nr_slots / SLOTS_PER_PACKET; -		data->count = ring->nr_tx_packets; +		stats[i].len = ring->used_slots / SLOTS_PER_PACKET; +		stats[i].limit = ring->nr_slots / SLOTS_PER_PACKET; +		stats[i].count = ring->nr_tx_packets;  		spin_unlock_irqrestore(&ring->lock, flags);  	}  } diff --git a/drivers/net/wireless/b43legacy/pio.c b/drivers/net/wireless/b43legacy/pio.c index bcdd54eb2ed..8d3d27d3cd6 100644 --- a/drivers/net/wireless/b43legacy/pio.c +++ b/drivers/net/wireless/b43legacy/pio.c @@ -525,13 +525,11 @@ void b43legacy_pio_get_tx_stats(struct b43legacy_wldev *dev,  {  	struct b43legacy_pio *pio = &dev->pio;  	struct b43legacy_pioqueue *queue; -	struct ieee80211_tx_queue_stats_data *data;  	queue = pio->queue1; -	data = &(stats->data[0]); -	data->len = B43legacy_PIO_MAXTXPACKETS - queue->nr_txfree; -	data->limit = B43legacy_PIO_MAXTXPACKETS; -	data->count = queue->nr_tx_packets; +	stats[0].len = B43legacy_PIO_MAXTXPACKETS - queue->nr_txfree; +	stats[0].limit = B43legacy_PIO_MAXTXPACKETS; +	stats[0].count = queue->nr_tx_packets;  }  static void pio_rx_error(struct b43legacy_pioqueue *queue, diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index 67fd267c99c..bad367cfbee 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c @@ -7217,9 +7217,9 @@ static int iwl3945_mac_get_tx_stats(struct ieee80211_hw *hw,  		q = &txq->q;  		avail = iwl3945_queue_space(q); -		stats->data[i].len = q->n_window - avail; -		stats->data[i].limit = q->n_window - q->high_mark; -		stats->data[i].count = q->n_window; +		stats[i].len = q->n_window - avail; +		stats[i].limit = q->n_window - q->high_mark; +		stats[i].count = q->n_window;  	}  	spin_unlock_irqrestore(&priv->lock, flags); diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index f887a4e54ba..64cb905cdae 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c @@ -6420,9 +6420,9 @@ static int iwl4965_mac_get_tx_stats(struct ieee80211_hw *hw,  		q = &txq->q;  		avail = iwl4965_queue_space(q); -		stats->data[i].len = q->n_window - avail; -		stats->data[i].limit = q->n_window - q->high_mark; -		stats->data[i].count = q->n_window; +		stats[i].len = q->n_window - avail; +		stats[i].limit = q->n_window - q->high_mark; +		stats[i].count = q->n_window;  	}  	spin_unlock_irqrestore(&priv->lock, flags); diff --git a/drivers/net/wireless/p54/p54.h b/drivers/net/wireless/p54/p54.h index 06d2c67f4c8..c6f27b9022f 100644 --- a/drivers/net/wireless/p54/p54.h +++ b/drivers/net/wireless/p54/p54.h @@ -64,7 +64,7 @@ struct p54_common {  	unsigned int tx_hdr_len;  	void *cached_vdcf;  	unsigned int fw_var; -	struct ieee80211_tx_queue_stats tx_stats; +	struct ieee80211_tx_queue_stats tx_stats[4];  };  int p54_rx(struct ieee80211_hw *dev, struct sk_buff *skb); diff --git a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c index 63f9badf3f5..59a26978f87 100644 --- a/drivers/net/wireless/p54/p54common.c +++ b/drivers/net/wireless/p54/p54common.c @@ -146,10 +146,10 @@ void p54_parse_firmware(struct ieee80211_hw *dev, const struct firmware *fw)  	if (priv->fw_var >= 0x300) {  		/* Firmware supports QoS, use it! */ -		priv->tx_stats.data[0].limit = 3; -		priv->tx_stats.data[1].limit = 4; -		priv->tx_stats.data[2].limit = 3; -		priv->tx_stats.data[3].limit = 1; +		priv->tx_stats[0].limit = 3; +		priv->tx_stats[1].limit = 4; +		priv->tx_stats[2].limit = 3; +		priv->tx_stats[3].limit = 1;  		dev->queues = 4;  	}  } @@ -379,7 +379,7 @@ static void inline p54_wake_free_queues(struct ieee80211_hw *dev)  	 * But, what if some are full? */  	for (i = 0; i < dev->queues; i++) -		if (priv->tx_stats.data[i].len < priv->tx_stats.data[i].limit) +		if (priv->tx_stats[i].len < priv->tx_stats[i].limit)  			ieee80211_wake_queue(dev, i);  } @@ -417,8 +417,7 @@ static void p54_rx_frame_sent(struct ieee80211_hw *dev, struct sk_buff *skb)  			memcpy(&status.control, range->control,  			       sizeof(status.control));  			kfree(range->control); -			priv->tx_stats.data[status.control.queue].len--; - +			priv->tx_stats[status.control.queue].len--;  			entry_hdr = (struct p54_control_hdr *) entry->data;  			entry_data = (struct p54_tx_control_allocdata *) entry_hdr->data;  			if ((entry_hdr->magic1 & cpu_to_le16(0x4000)) != 0) @@ -555,7 +554,7 @@ static void p54_assign_address(struct ieee80211_hw *dev, struct sk_buff *skb,  static int p54_tx(struct ieee80211_hw *dev, struct sk_buff *skb,  		  struct ieee80211_tx_control *control)  { -	struct ieee80211_tx_queue_stats_data *current_queue; +	struct ieee80211_tx_queue_stats *current_queue;  	struct p54_common *priv = dev->priv;  	struct p54_control_hdr *hdr;  	struct p54_tx_control_allocdata *txhdr; @@ -563,7 +562,7 @@ static int p54_tx(struct ieee80211_hw *dev, struct sk_buff *skb,  	size_t padding, len;  	u8 rate; -	current_queue = &priv->tx_stats.data[control->queue]; +	current_queue = &priv->tx_stats[control->queue];  	if (unlikely(current_queue->len > current_queue->limit))  		return NETDEV_TX_BUSY;  	current_queue->len++; @@ -967,11 +966,8 @@ static int p54_get_tx_stats(struct ieee80211_hw *dev,  			    struct ieee80211_tx_queue_stats *stats)  {  	struct p54_common *priv = dev->priv; -	unsigned int i; -	for (i = 0; i < dev->queues; i++) -		memcpy(&stats->data[i], &priv->tx_stats.data[i], -			sizeof(stats->data[i])); +	memcpy(stats, &priv->tx_stats, sizeof(stats[0]) * dev->queues);  	return 0;  } @@ -1008,7 +1004,7 @@ struct ieee80211_hw *p54_init_common(size_t priv_data_len)  	dev->channel_change_time = 1000;	/* TODO: find actual value */  	dev->max_rssi = 127; -	priv->tx_stats.data[0].limit = 5; +	priv->tx_stats[0].limit = 5;  	dev->queues = 1;  	dev->extra_tx_headroom = sizeof(struct p54_control_hdr) + 4 + diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c index d4ceab7646e..7bc5129484f 100644 --- a/drivers/net/wireless/rt2x00/rt2x00mac.c +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c @@ -457,9 +457,9 @@ int rt2x00mac_get_tx_stats(struct ieee80211_hw *hw,  	unsigned int i;  	for (i = 0; i < hw->queues; i++) { -		stats->data[i].len = rt2x00dev->tx[i].length; -		stats->data[i].limit = rt2x00dev->tx[i].limit; -		stats->data[i].count = rt2x00dev->tx[i].count; +		stats[i].len = rt2x00dev->tx[i].length; +		stats[i].limit = rt2x00dev->tx[i].limit; +		stats[i].count = rt2x00dev->tx[i].count;  	}  	return 0;  |