diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-04-29 11:18:59 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-05-07 15:02:26 -0400 |
commit | 57ffc589a92424f9def74fe0d49b2f7763ff07fd (patch) | |
tree | 2ec3f60cac2e5757206dee219e7b3a60ded13004 | |
parent | 3e0d4cb12f6fd97193a455b49125398b2231c87c (diff) |
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>
-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 | ||||
-rw-r--r-- | include/net/mac80211.h | 13 |
13 files changed, 45 insertions, 62 deletions
diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c index 5c0d2b082750..d93a1de77eb0 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, | |||
306 | struct ieee80211_tx_queue_stats *stats) | 306 | struct ieee80211_tx_queue_stats *stats) |
307 | { | 307 | { |
308 | struct adm8211_priv *priv = dev->priv; | 308 | struct adm8211_priv *priv = dev->priv; |
309 | struct ieee80211_tx_queue_stats_data *data = &stats->data[0]; | ||
310 | 309 | ||
311 | data->len = priv->cur_tx - priv->dirty_tx; | 310 | stats[0].len = priv->cur_tx - priv->dirty_tx; |
312 | data->limit = priv->tx_ring_size - 2; | 311 | stats[0].limit = priv->tx_ring_size - 2; |
313 | data->count = priv->dirty_tx; | 312 | stats[0].count = priv->dirty_tx; |
314 | 313 | ||
315 | return 0; | 314 | return 0; |
316 | } | 315 | } |
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c index 3854619f3514..3201c1604340 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, | |||
1335 | 1335 | ||
1336 | spin_lock_bh(&txq->lock); | 1336 | spin_lock_bh(&txq->lock); |
1337 | list_add_tail(&bf->list, &txq->q); | 1337 | list_add_tail(&bf->list, &txq->q); |
1338 | sc->tx_stats.data[txq->qnum].len++; | 1338 | sc->tx_stats[txq->qnum].len++; |
1339 | if (txq->link == NULL) /* is this first packet? */ | 1339 | if (txq->link == NULL) /* is this first packet? */ |
1340 | ath5k_hw_put_tx_buf(ah, txq->qnum, bf->daddr); | 1340 | ath5k_hw_put_tx_buf(ah, txq->qnum, bf->daddr); |
1341 | else /* no, so only link it */ | 1341 | else /* no, so only link it */ |
@@ -1566,7 +1566,7 @@ ath5k_txq_drainq(struct ath5k_softc *sc, struct ath5k_txq *txq) | |||
1566 | ath5k_txbuf_free(sc, bf); | 1566 | ath5k_txbuf_free(sc, bf); |
1567 | 1567 | ||
1568 | spin_lock_bh(&sc->txbuflock); | 1568 | spin_lock_bh(&sc->txbuflock); |
1569 | sc->tx_stats.data[txq->qnum].len--; | 1569 | sc->tx_stats[txq->qnum].len--; |
1570 | list_move_tail(&bf->list, &sc->txbuf); | 1570 | list_move_tail(&bf->list, &sc->txbuf); |
1571 | sc->txbuf_len++; | 1571 | sc->txbuf_len++; |
1572 | spin_unlock_bh(&sc->txbuflock); | 1572 | spin_unlock_bh(&sc->txbuflock); |
@@ -1979,10 +1979,10 @@ ath5k_tx_processq(struct ath5k_softc *sc, struct ath5k_txq *txq) | |||
1979 | } | 1979 | } |
1980 | 1980 | ||
1981 | ieee80211_tx_status(sc->hw, skb, &txs); | 1981 | ieee80211_tx_status(sc->hw, skb, &txs); |
1982 | sc->tx_stats.data[txq->qnum].count++; | 1982 | sc->tx_stats[txq->qnum].count++; |
1983 | 1983 | ||
1984 | spin_lock(&sc->txbuflock); | 1984 | spin_lock(&sc->txbuflock); |
1985 | sc->tx_stats.data[txq->qnum].len--; | 1985 | sc->tx_stats[txq->qnum].len--; |
1986 | list_move_tail(&bf->list, &sc->txbuf); | 1986 | list_move_tail(&bf->list, &sc->txbuf); |
1987 | sc->txbuf_len++; | 1987 | sc->txbuf_len++; |
1988 | spin_unlock(&sc->txbuflock); | 1988 | spin_unlock(&sc->txbuflock); |
diff --git a/drivers/net/wireless/ath5k/base.h b/drivers/net/wireless/ath5k/base.h index 3a9755893018..ecb17495488c 100644 --- a/drivers/net/wireless/ath5k/base.h +++ b/drivers/net/wireless/ath5k/base.h | |||
@@ -92,7 +92,8 @@ struct ath5k_softc { | |||
92 | struct pci_dev *pdev; /* for dma mapping */ | 92 | struct pci_dev *pdev; /* for dma mapping */ |
93 | void __iomem *iobase; /* address of the device */ | 93 | void __iomem *iobase; /* address of the device */ |
94 | struct mutex lock; /* dev-level lock */ | 94 | struct mutex lock; /* dev-level lock */ |
95 | struct ieee80211_tx_queue_stats tx_stats; | 95 | /* FIXME: how many does it really need? */ |
96 | struct ieee80211_tx_queue_stats tx_stats[16]; | ||
96 | struct ieee80211_low_level_stats ll_stats; | 97 | struct ieee80211_low_level_stats ll_stats; |
97 | struct ieee80211_hw *hw; /* IEEE 802.11 common */ | 98 | struct ieee80211_hw *hw; /* IEEE 802.11 common */ |
98 | struct ieee80211_supported_band sbands[IEEE80211_NUM_BANDS]; | 99 | 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 6dcbb3c87e72..f50e2014ffbe 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, | |||
1427 | { | 1427 | { |
1428 | const int nr_queues = dev->wl->hw->queues; | 1428 | const int nr_queues = dev->wl->hw->queues; |
1429 | struct b43_dmaring *ring; | 1429 | struct b43_dmaring *ring; |
1430 | struct ieee80211_tx_queue_stats_data *data; | ||
1431 | unsigned long flags; | 1430 | unsigned long flags; |
1432 | int i; | 1431 | int i; |
1433 | 1432 | ||
1434 | for (i = 0; i < nr_queues; i++) { | 1433 | for (i = 0; i < nr_queues; i++) { |
1435 | data = &(stats->data[i]); | ||
1436 | ring = select_ring_by_priority(dev, i); | 1434 | ring = select_ring_by_priority(dev, i); |
1437 | 1435 | ||
1438 | spin_lock_irqsave(&ring->lock, flags); | 1436 | spin_lock_irqsave(&ring->lock, flags); |
1439 | data->len = ring->used_slots / SLOTS_PER_PACKET; | 1437 | stats[i].len = ring->used_slots / SLOTS_PER_PACKET; |
1440 | data->limit = ring->nr_slots / SLOTS_PER_PACKET; | 1438 | stats[i].limit = ring->nr_slots / SLOTS_PER_PACKET; |
1441 | data->count = ring->nr_tx_packets; | 1439 | stats[i].count = ring->nr_tx_packets; |
1442 | spin_unlock_irqrestore(&ring->lock, flags); | 1440 | spin_unlock_irqrestore(&ring->lock, flags); |
1443 | } | 1441 | } |
1444 | } | 1442 | } |
diff --git a/drivers/net/wireless/b43/pio.c b/drivers/net/wireless/b43/pio.c index fcacafb04346..08c8a087f30e 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, | |||
611 | { | 611 | { |
612 | const int nr_queues = dev->wl->hw->queues; | 612 | const int nr_queues = dev->wl->hw->queues; |
613 | struct b43_pio_txqueue *q; | 613 | struct b43_pio_txqueue *q; |
614 | struct ieee80211_tx_queue_stats_data *data; | ||
615 | unsigned long flags; | 614 | unsigned long flags; |
616 | int i; | 615 | int i; |
617 | 616 | ||
618 | for (i = 0; i < nr_queues; i++) { | 617 | for (i = 0; i < nr_queues; i++) { |
619 | data = &(stats->data[i]); | ||
620 | q = select_queue_by_priority(dev, i); | 618 | q = select_queue_by_priority(dev, i); |
621 | 619 | ||
622 | spin_lock_irqsave(&q->lock, flags); | 620 | spin_lock_irqsave(&q->lock, flags); |
623 | data->len = B43_PIO_MAX_NR_TXPACKETS - q->free_packet_slots; | 621 | stats[i].len = B43_PIO_MAX_NR_TXPACKETS - q->free_packet_slots; |
624 | data->limit = B43_PIO_MAX_NR_TXPACKETS; | 622 | stats[i].limit = B43_PIO_MAX_NR_TXPACKETS; |
625 | data->count = q->nr_tx_packets; | 623 | stats[i].count = q->nr_tx_packets; |
626 | spin_unlock_irqrestore(&q->lock, flags); | 624 | spin_unlock_irqrestore(&q->lock, flags); |
627 | } | 625 | } |
628 | } | 626 | } |
diff --git a/drivers/net/wireless/b43legacy/dma.c b/drivers/net/wireless/b43legacy/dma.c index c990f87b107a..d6686f713b6d 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, | |||
1455 | { | 1455 | { |
1456 | const int nr_queues = dev->wl->hw->queues; | 1456 | const int nr_queues = dev->wl->hw->queues; |
1457 | struct b43legacy_dmaring *ring; | 1457 | struct b43legacy_dmaring *ring; |
1458 | struct ieee80211_tx_queue_stats_data *data; | ||
1459 | unsigned long flags; | 1458 | unsigned long flags; |
1460 | int i; | 1459 | int i; |
1461 | 1460 | ||
1462 | for (i = 0; i < nr_queues; i++) { | 1461 | for (i = 0; i < nr_queues; i++) { |
1463 | data = &(stats->data[i]); | ||
1464 | ring = priority_to_txring(dev, i); | 1462 | ring = priority_to_txring(dev, i); |
1465 | 1463 | ||
1466 | spin_lock_irqsave(&ring->lock, flags); | 1464 | spin_lock_irqsave(&ring->lock, flags); |
1467 | data->len = ring->used_slots / SLOTS_PER_PACKET; | 1465 | stats[i].len = ring->used_slots / SLOTS_PER_PACKET; |
1468 | data->limit = ring->nr_slots / SLOTS_PER_PACKET; | 1466 | stats[i].limit = ring->nr_slots / SLOTS_PER_PACKET; |
1469 | data->count = ring->nr_tx_packets; | 1467 | stats[i].count = ring->nr_tx_packets; |
1470 | spin_unlock_irqrestore(&ring->lock, flags); | 1468 | spin_unlock_irqrestore(&ring->lock, flags); |
1471 | } | 1469 | } |
1472 | } | 1470 | } |
diff --git a/drivers/net/wireless/b43legacy/pio.c b/drivers/net/wireless/b43legacy/pio.c index bcdd54eb2edb..8d3d27d3cd67 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, | |||
525 | { | 525 | { |
526 | struct b43legacy_pio *pio = &dev->pio; | 526 | struct b43legacy_pio *pio = &dev->pio; |
527 | struct b43legacy_pioqueue *queue; | 527 | struct b43legacy_pioqueue *queue; |
528 | struct ieee80211_tx_queue_stats_data *data; | ||
529 | 528 | ||
530 | queue = pio->queue1; | 529 | queue = pio->queue1; |
531 | data = &(stats->data[0]); | 530 | stats[0].len = B43legacy_PIO_MAXTXPACKETS - queue->nr_txfree; |
532 | data->len = B43legacy_PIO_MAXTXPACKETS - queue->nr_txfree; | 531 | stats[0].limit = B43legacy_PIO_MAXTXPACKETS; |
533 | data->limit = B43legacy_PIO_MAXTXPACKETS; | 532 | stats[0].count = queue->nr_tx_packets; |
534 | data->count = queue->nr_tx_packets; | ||
535 | } | 533 | } |
536 | 534 | ||
537 | static void pio_rx_error(struct b43legacy_pioqueue *queue, | 535 | 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 67fd267c99ca..bad367cfbee3 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, | |||
7217 | q = &txq->q; | 7217 | q = &txq->q; |
7218 | avail = iwl3945_queue_space(q); | 7218 | avail = iwl3945_queue_space(q); |
7219 | 7219 | ||
7220 | stats->data[i].len = q->n_window - avail; | 7220 | stats[i].len = q->n_window - avail; |
7221 | stats->data[i].limit = q->n_window - q->high_mark; | 7221 | stats[i].limit = q->n_window - q->high_mark; |
7222 | stats->data[i].count = q->n_window; | 7222 | stats[i].count = q->n_window; |
7223 | 7223 | ||
7224 | } | 7224 | } |
7225 | spin_unlock_irqrestore(&priv->lock, flags); | 7225 | 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 f887a4e54ba2..64cb905cdaed 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, | |||
6420 | q = &txq->q; | 6420 | q = &txq->q; |
6421 | avail = iwl4965_queue_space(q); | 6421 | avail = iwl4965_queue_space(q); |
6422 | 6422 | ||
6423 | stats->data[i].len = q->n_window - avail; | 6423 | stats[i].len = q->n_window - avail; |
6424 | stats->data[i].limit = q->n_window - q->high_mark; | 6424 | stats[i].limit = q->n_window - q->high_mark; |
6425 | stats->data[i].count = q->n_window; | 6425 | stats[i].count = q->n_window; |
6426 | 6426 | ||
6427 | } | 6427 | } |
6428 | spin_unlock_irqrestore(&priv->lock, flags); | 6428 | spin_unlock_irqrestore(&priv->lock, flags); |
diff --git a/drivers/net/wireless/p54/p54.h b/drivers/net/wireless/p54/p54.h index 06d2c67f4c81..c6f27b9022f9 100644 --- a/drivers/net/wireless/p54/p54.h +++ b/drivers/net/wireless/p54/p54.h | |||
@@ -64,7 +64,7 @@ struct p54_common { | |||
64 | unsigned int tx_hdr_len; | 64 | unsigned int tx_hdr_len; |
65 | void *cached_vdcf; | 65 | void *cached_vdcf; |
66 | unsigned int fw_var; | 66 | unsigned int fw_var; |
67 | struct ieee80211_tx_queue_stats tx_stats; | 67 | struct ieee80211_tx_queue_stats tx_stats[4]; |
68 | }; | 68 | }; |
69 | 69 | ||
70 | int p54_rx(struct ieee80211_hw *dev, struct sk_buff *skb); | 70 | 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 63f9badf3f52..59a26978f877 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) | |||
146 | 146 | ||
147 | if (priv->fw_var >= 0x300) { | 147 | if (priv->fw_var >= 0x300) { |
148 | /* Firmware supports QoS, use it! */ | 148 | /* Firmware supports QoS, use it! */ |
149 | priv->tx_stats.data[0].limit = 3; | 149 | priv->tx_stats[0].limit = 3; |
150 | priv->tx_stats.data[1].limit = 4; | 150 | priv->tx_stats[1].limit = 4; |
151 | priv->tx_stats.data[2].limit = 3; | 151 | priv->tx_stats[2].limit = 3; |
152 | priv->tx_stats.data[3].limit = 1; | 152 | priv->tx_stats[3].limit = 1; |
153 | dev->queues = 4; | 153 | dev->queues = 4; |
154 | } | 154 | } |
155 | } | 155 | } |
@@ -379,7 +379,7 @@ static void inline p54_wake_free_queues(struct ieee80211_hw *dev) | |||
379 | * But, what if some are full? */ | 379 | * But, what if some are full? */ |
380 | 380 | ||
381 | for (i = 0; i < dev->queues; i++) | 381 | for (i = 0; i < dev->queues; i++) |
382 | if (priv->tx_stats.data[i].len < priv->tx_stats.data[i].limit) | 382 | if (priv->tx_stats[i].len < priv->tx_stats[i].limit) |
383 | ieee80211_wake_queue(dev, i); | 383 | ieee80211_wake_queue(dev, i); |
384 | } | 384 | } |
385 | 385 | ||
@@ -417,8 +417,7 @@ static void p54_rx_frame_sent(struct ieee80211_hw *dev, struct sk_buff *skb) | |||
417 | memcpy(&status.control, range->control, | 417 | memcpy(&status.control, range->control, |
418 | sizeof(status.control)); | 418 | sizeof(status.control)); |
419 | kfree(range->control); | 419 | kfree(range->control); |
420 | priv->tx_stats.data[status.control.queue].len--; | 420 | priv->tx_stats[status.control.queue].len--; |
421 | |||
422 | entry_hdr = (struct p54_control_hdr *) entry->data; | 421 | entry_hdr = (struct p54_control_hdr *) entry->data; |
423 | entry_data = (struct p54_tx_control_allocdata *) entry_hdr->data; | 422 | entry_data = (struct p54_tx_control_allocdata *) entry_hdr->data; |
424 | if ((entry_hdr->magic1 & cpu_to_le16(0x4000)) != 0) | 423 | 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, | |||
555 | static int p54_tx(struct ieee80211_hw *dev, struct sk_buff *skb, | 554 | static int p54_tx(struct ieee80211_hw *dev, struct sk_buff *skb, |
556 | struct ieee80211_tx_control *control) | 555 | struct ieee80211_tx_control *control) |
557 | { | 556 | { |
558 | struct ieee80211_tx_queue_stats_data *current_queue; | 557 | struct ieee80211_tx_queue_stats *current_queue; |
559 | struct p54_common *priv = dev->priv; | 558 | struct p54_common *priv = dev->priv; |
560 | struct p54_control_hdr *hdr; | 559 | struct p54_control_hdr *hdr; |
561 | struct p54_tx_control_allocdata *txhdr; | 560 | struct p54_tx_control_allocdata *txhdr; |
@@ -563,7 +562,7 @@ static int p54_tx(struct ieee80211_hw *dev, struct sk_buff *skb, | |||
563 | size_t padding, len; | 562 | size_t padding, len; |
564 | u8 rate; | 563 | u8 rate; |
565 | 564 | ||
566 | current_queue = &priv->tx_stats.data[control->queue]; | 565 | current_queue = &priv->tx_stats[control->queue]; |
567 | if (unlikely(current_queue->len > current_queue->limit)) | 566 | if (unlikely(current_queue->len > current_queue->limit)) |
568 | return NETDEV_TX_BUSY; | 567 | return NETDEV_TX_BUSY; |
569 | current_queue->len++; | 568 | current_queue->len++; |
@@ -967,11 +966,8 @@ static int p54_get_tx_stats(struct ieee80211_hw *dev, | |||
967 | struct ieee80211_tx_queue_stats *stats) | 966 | struct ieee80211_tx_queue_stats *stats) |
968 | { | 967 | { |
969 | struct p54_common *priv = dev->priv; | 968 | struct p54_common *priv = dev->priv; |
970 | unsigned int i; | ||
971 | 969 | ||
972 | for (i = 0; i < dev->queues; i++) | 970 | memcpy(stats, &priv->tx_stats, sizeof(stats[0]) * dev->queues); |
973 | memcpy(&stats->data[i], &priv->tx_stats.data[i], | ||
974 | sizeof(stats->data[i])); | ||
975 | 971 | ||
976 | return 0; | 972 | return 0; |
977 | } | 973 | } |
@@ -1008,7 +1004,7 @@ struct ieee80211_hw *p54_init_common(size_t priv_data_len) | |||
1008 | dev->channel_change_time = 1000; /* TODO: find actual value */ | 1004 | dev->channel_change_time = 1000; /* TODO: find actual value */ |
1009 | dev->max_rssi = 127; | 1005 | dev->max_rssi = 127; |
1010 | 1006 | ||
1011 | priv->tx_stats.data[0].limit = 5; | 1007 | priv->tx_stats[0].limit = 5; |
1012 | dev->queues = 1; | 1008 | dev->queues = 1; |
1013 | 1009 | ||
1014 | dev->extra_tx_headroom = sizeof(struct p54_control_hdr) + 4 + | 1010 | 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 d4ceab7646e7..7bc5129484f2 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, | |||
457 | unsigned int i; | 457 | unsigned int i; |
458 | 458 | ||
459 | for (i = 0; i < hw->queues; i++) { | 459 | for (i = 0; i < hw->queues; i++) { |
460 | stats->data[i].len = rt2x00dev->tx[i].length; | 460 | stats[i].len = rt2x00dev->tx[i].length; |
461 | stats->data[i].limit = rt2x00dev->tx[i].limit; | 461 | stats[i].limit = rt2x00dev->tx[i].limit; |
462 | stats->data[i].count = rt2x00dev->tx[i].count; | 462 | stats[i].count = rt2x00dev->tx[i].count; |
463 | } | 463 | } |
464 | 464 | ||
465 | return 0; | 465 | return 0; |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 740c11ca066c..346a7563ef02 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -117,13 +117,13 @@ struct ieee80211_tx_queue_params { | |||
117 | }; | 117 | }; |
118 | 118 | ||
119 | /** | 119 | /** |
120 | * struct ieee80211_tx_queue_stats_data - transmit queue statistics | 120 | * struct ieee80211_tx_queue_stats - transmit queue statistics |
121 | * | 121 | * |
122 | * @len: number of packets in queue | 122 | * @len: number of packets in queue |
123 | * @limit: queue length limit | 123 | * @limit: queue length limit |
124 | * @count: number of frames sent | 124 | * @count: number of frames sent |
125 | */ | 125 | */ |
126 | struct ieee80211_tx_queue_stats_data { | 126 | struct ieee80211_tx_queue_stats { |
127 | unsigned int len; | 127 | unsigned int len; |
128 | unsigned int limit; | 128 | unsigned int limit; |
129 | unsigned int count; | 129 | unsigned int count; |
@@ -165,10 +165,6 @@ enum ieee80211_tx_queue { | |||
165 | NUM_TX_DATA_QUEUES_AMPDU = 16 | 165 | NUM_TX_DATA_QUEUES_AMPDU = 16 |
166 | }; | 166 | }; |
167 | 167 | ||
168 | struct ieee80211_tx_queue_stats { | ||
169 | struct ieee80211_tx_queue_stats_data data[NUM_TX_DATA_QUEUES_AMPDU]; | ||
170 | }; | ||
171 | |||
172 | struct ieee80211_low_level_stats { | 168 | struct ieee80211_low_level_stats { |
173 | unsigned int dot11ACKFailureCount; | 169 | unsigned int dot11ACKFailureCount; |
174 | unsigned int dot11RTSFailureCount; | 170 | unsigned int dot11RTSFailureCount; |
@@ -1083,9 +1079,8 @@ enum ieee80211_ampdu_mlme_action { | |||
1083 | * @get_tx_stats: Get statistics of the current TX queue status. This is used | 1079 | * @get_tx_stats: Get statistics of the current TX queue status. This is used |
1084 | * to get number of currently queued packets (queue length), maximum queue | 1080 | * to get number of currently queued packets (queue length), maximum queue |
1085 | * size (limit), and total number of packets sent using each TX queue | 1081 | * size (limit), and total number of packets sent using each TX queue |
1086 | * (count). This information is used for WMM to find out which TX | 1082 | * (count). The 'stats' pointer points to an array that has hw->queues + |
1087 | * queues have room for more packets and by hostapd to provide | 1083 | * hw->ampdu_queues items. |
1088 | * statistics about the current queueing state to external programs. | ||
1089 | * | 1084 | * |
1090 | * @get_tsf: Get the current TSF timer value from firmware/hardware. Currently, | 1085 | * @get_tsf: Get the current TSF timer value from firmware/hardware. Currently, |
1091 | * this is only used for IBSS mode debugging and, as such, is not a | 1086 | * this is only used for IBSS mode debugging and, as such, is not a |