diff options
-rw-r--r-- | include/linux/ieee80211.h | 2 | ||||
-rw-r--r-- | net/mac80211/agg-rx.c | 2 | ||||
-rw-r--r-- | net/mac80211/agg-tx.c | 12 | ||||
-rw-r--r-- | net/mac80211/debugfs_key.c | 6 | ||||
-rw-r--r-- | net/mac80211/debugfs_sta.c | 10 | ||||
-rw-r--r-- | net/mac80211/ht.c | 4 | ||||
-rw-r--r-- | net/mac80211/key.c | 10 | ||||
-rw-r--r-- | net/mac80211/key.h | 8 | ||||
-rw-r--r-- | net/mac80211/rx.c | 4 | ||||
-rw-r--r-- | net/mac80211/sta_info.c | 10 | ||||
-rw-r--r-- | net/mac80211/sta_info.h | 19 |
11 files changed, 43 insertions, 44 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 4530d4960953..d68790903b9e 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -131,6 +131,8 @@ | |||
131 | 131 | ||
132 | #define IEEE80211_MAX_MESH_ID_LEN 32 | 132 | #define IEEE80211_MAX_MESH_ID_LEN 32 |
133 | 133 | ||
134 | #define IEEE80211_NUM_TIDS 16 | ||
135 | |||
134 | #define IEEE80211_QOS_CTL_LEN 2 | 136 | #define IEEE80211_QOS_CTL_LEN 2 |
135 | /* 1d tag mask */ | 137 | /* 1d tag mask */ |
136 | #define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007 | 138 | #define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007 |
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c index 186d9919b043..808338a1bce5 100644 --- a/net/mac80211/agg-rx.c +++ b/net/mac80211/agg-rx.c | |||
@@ -118,7 +118,7 @@ void ieee80211_stop_rx_ba_session(struct ieee80211_vif *vif, u16 ba_rx_bitmap, | |||
118 | return; | 118 | return; |
119 | } | 119 | } |
120 | 120 | ||
121 | for (i = 0; i < STA_TID_NUM; i++) | 121 | for (i = 0; i < IEEE80211_NUM_TIDS; i++) |
122 | if (ba_rx_bitmap & BIT(i)) | 122 | if (ba_rx_bitmap & BIT(i)) |
123 | set_bit(i, sta->ampdu_mlme.tid_rx_stop_requested); | 123 | set_bit(i, sta->ampdu_mlme.tid_rx_stop_requested); |
124 | 124 | ||
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c index 3195a6307f50..4152ed1034b8 100644 --- a/net/mac80211/agg-tx.c +++ b/net/mac80211/agg-tx.c | |||
@@ -448,7 +448,7 @@ int ieee80211_start_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid, | |||
448 | if (WARN_ON(!local->ops->ampdu_action)) | 448 | if (WARN_ON(!local->ops->ampdu_action)) |
449 | return -EINVAL; | 449 | return -EINVAL; |
450 | 450 | ||
451 | if ((tid >= STA_TID_NUM) || | 451 | if ((tid >= IEEE80211_NUM_TIDS) || |
452 | !(local->hw.flags & IEEE80211_HW_AMPDU_AGGREGATION) || | 452 | !(local->hw.flags & IEEE80211_HW_AMPDU_AGGREGATION) || |
453 | (local->hw.flags & IEEE80211_HW_TX_AMPDU_SETUP_IN_HW)) | 453 | (local->hw.flags & IEEE80211_HW_TX_AMPDU_SETUP_IN_HW)) |
454 | return -EINVAL; | 454 | return -EINVAL; |
@@ -605,9 +605,9 @@ void ieee80211_start_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u16 tid) | |||
605 | 605 | ||
606 | trace_api_start_tx_ba_cb(sdata, ra, tid); | 606 | trace_api_start_tx_ba_cb(sdata, ra, tid); |
607 | 607 | ||
608 | if (tid >= STA_TID_NUM) { | 608 | if (tid >= IEEE80211_NUM_TIDS) { |
609 | ht_dbg(sdata, "Bad TID value: tid = %d (>= %d)\n", | 609 | ht_dbg(sdata, "Bad TID value: tid = %d (>= %d)\n", |
610 | tid, STA_TID_NUM); | 610 | tid, IEEE80211_NUM_TIDS); |
611 | return; | 611 | return; |
612 | } | 612 | } |
613 | 613 | ||
@@ -687,7 +687,7 @@ int ieee80211_stop_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid) | |||
687 | if (!local->ops->ampdu_action) | 687 | if (!local->ops->ampdu_action) |
688 | return -EINVAL; | 688 | return -EINVAL; |
689 | 689 | ||
690 | if (tid >= STA_TID_NUM) | 690 | if (tid >= IEEE80211_NUM_TIDS) |
691 | return -EINVAL; | 691 | return -EINVAL; |
692 | 692 | ||
693 | spin_lock_bh(&sta->lock); | 693 | spin_lock_bh(&sta->lock); |
@@ -722,9 +722,9 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid) | |||
722 | 722 | ||
723 | trace_api_stop_tx_ba_cb(sdata, ra, tid); | 723 | trace_api_stop_tx_ba_cb(sdata, ra, tid); |
724 | 724 | ||
725 | if (tid >= STA_TID_NUM) { | 725 | if (tid >= IEEE80211_NUM_TIDS) { |
726 | ht_dbg(sdata, "Bad TID value: tid = %d (>= %d)\n", | 726 | ht_dbg(sdata, "Bad TID value: tid = %d (>= %d)\n", |
727 | tid, STA_TID_NUM); | 727 | tid, IEEE80211_NUM_TIDS); |
728 | return; | 728 | return; |
729 | } | 729 | } |
730 | 730 | ||
diff --git a/net/mac80211/debugfs_key.c b/net/mac80211/debugfs_key.c index 090d08ff22c4..2d4235497f1b 100644 --- a/net/mac80211/debugfs_key.c +++ b/net/mac80211/debugfs_key.c | |||
@@ -116,7 +116,7 @@ static ssize_t key_rx_spec_read(struct file *file, char __user *userbuf, | |||
116 | size_t count, loff_t *ppos) | 116 | size_t count, loff_t *ppos) |
117 | { | 117 | { |
118 | struct ieee80211_key *key = file->private_data; | 118 | struct ieee80211_key *key = file->private_data; |
119 | char buf[14*NUM_RX_DATA_QUEUES+1], *p = buf; | 119 | char buf[14*IEEE80211_NUM_TIDS+1], *p = buf; |
120 | int i, len; | 120 | int i, len; |
121 | const u8 *rpn; | 121 | const u8 *rpn; |
122 | 122 | ||
@@ -126,7 +126,7 @@ static ssize_t key_rx_spec_read(struct file *file, char __user *userbuf, | |||
126 | len = scnprintf(buf, sizeof(buf), "\n"); | 126 | len = scnprintf(buf, sizeof(buf), "\n"); |
127 | break; | 127 | break; |
128 | case WLAN_CIPHER_SUITE_TKIP: | 128 | case WLAN_CIPHER_SUITE_TKIP: |
129 | for (i = 0; i < NUM_RX_DATA_QUEUES; i++) | 129 | for (i = 0; i < IEEE80211_NUM_TIDS; i++) |
130 | p += scnprintf(p, sizeof(buf)+buf-p, | 130 | p += scnprintf(p, sizeof(buf)+buf-p, |
131 | "%08x %04x\n", | 131 | "%08x %04x\n", |
132 | key->u.tkip.rx[i].iv32, | 132 | key->u.tkip.rx[i].iv32, |
@@ -134,7 +134,7 @@ static ssize_t key_rx_spec_read(struct file *file, char __user *userbuf, | |||
134 | len = p - buf; | 134 | len = p - buf; |
135 | break; | 135 | break; |
136 | case WLAN_CIPHER_SUITE_CCMP: | 136 | case WLAN_CIPHER_SUITE_CCMP: |
137 | for (i = 0; i < NUM_RX_DATA_QUEUES + 1; i++) { | 137 | for (i = 0; i < IEEE80211_NUM_TIDS + 1; i++) { |
138 | rpn = key->u.ccmp.rx_pn[i]; | 138 | rpn = key->u.ccmp.rx_pn[i]; |
139 | p += scnprintf(p, sizeof(buf)+buf-p, | 139 | p += scnprintf(p, sizeof(buf)+buf-p, |
140 | "%02x%02x%02x%02x%02x%02x\n", | 140 | "%02x%02x%02x%02x%02x%02x\n", |
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c index 5ccec2c1e9f6..3d103929d41a 100644 --- a/net/mac80211/debugfs_sta.c +++ b/net/mac80211/debugfs_sta.c | |||
@@ -131,10 +131,10 @@ STA_OPS(connected_time); | |||
131 | static ssize_t sta_last_seq_ctrl_read(struct file *file, char __user *userbuf, | 131 | static ssize_t sta_last_seq_ctrl_read(struct file *file, char __user *userbuf, |
132 | size_t count, loff_t *ppos) | 132 | size_t count, loff_t *ppos) |
133 | { | 133 | { |
134 | char buf[15*NUM_RX_DATA_QUEUES], *p = buf; | 134 | char buf[15*IEEE80211_NUM_TIDS], *p = buf; |
135 | int i; | 135 | int i; |
136 | struct sta_info *sta = file->private_data; | 136 | struct sta_info *sta = file->private_data; |
137 | for (i = 0; i < NUM_RX_DATA_QUEUES; i++) | 137 | for (i = 0; i < IEEE80211_NUM_TIDS; i++) |
138 | p += scnprintf(p, sizeof(buf)+buf-p, "%x ", | 138 | p += scnprintf(p, sizeof(buf)+buf-p, "%x ", |
139 | le16_to_cpu(sta->last_seq_ctrl[i])); | 139 | le16_to_cpu(sta->last_seq_ctrl[i])); |
140 | p += scnprintf(p, sizeof(buf)+buf-p, "\n"); | 140 | p += scnprintf(p, sizeof(buf)+buf-p, "\n"); |
@@ -145,7 +145,7 @@ STA_OPS(last_seq_ctrl); | |||
145 | static ssize_t sta_agg_status_read(struct file *file, char __user *userbuf, | 145 | static ssize_t sta_agg_status_read(struct file *file, char __user *userbuf, |
146 | size_t count, loff_t *ppos) | 146 | size_t count, loff_t *ppos) |
147 | { | 147 | { |
148 | char buf[71 + STA_TID_NUM * 40], *p = buf; | 148 | char buf[71 + IEEE80211_NUM_TIDS * 40], *p = buf; |
149 | int i; | 149 | int i; |
150 | struct sta_info *sta = file->private_data; | 150 | struct sta_info *sta = file->private_data; |
151 | struct tid_ampdu_rx *tid_rx; | 151 | struct tid_ampdu_rx *tid_rx; |
@@ -158,7 +158,7 @@ static ssize_t sta_agg_status_read(struct file *file, char __user *userbuf, | |||
158 | p += scnprintf(p, sizeof(buf) + buf - p, | 158 | p += scnprintf(p, sizeof(buf) + buf - p, |
159 | "TID\t\tRX active\tDTKN\tSSN\t\tTX\tDTKN\tpending\n"); | 159 | "TID\t\tRX active\tDTKN\tSSN\t\tTX\tDTKN\tpending\n"); |
160 | 160 | ||
161 | for (i = 0; i < STA_TID_NUM; i++) { | 161 | for (i = 0; i < IEEE80211_NUM_TIDS; i++) { |
162 | tid_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[i]); | 162 | tid_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[i]); |
163 | tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[i]); | 163 | tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[i]); |
164 | 164 | ||
@@ -220,7 +220,7 @@ static ssize_t sta_agg_status_write(struct file *file, const char __user *userbu | |||
220 | 220 | ||
221 | tid = simple_strtoul(buf, NULL, 0); | 221 | tid = simple_strtoul(buf, NULL, 0); |
222 | 222 | ||
223 | if (tid >= STA_TID_NUM) | 223 | if (tid >= IEEE80211_NUM_TIDS) |
224 | return -EINVAL; | 224 | return -EINVAL; |
225 | 225 | ||
226 | if (tx) { | 226 | if (tx) { |
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c index 4b4538d63925..a71d891794a4 100644 --- a/net/mac80211/ht.c +++ b/net/mac80211/ht.c | |||
@@ -185,7 +185,7 @@ void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta, bool tx) | |||
185 | 185 | ||
186 | cancel_work_sync(&sta->ampdu_mlme.work); | 186 | cancel_work_sync(&sta->ampdu_mlme.work); |
187 | 187 | ||
188 | for (i = 0; i < STA_TID_NUM; i++) { | 188 | for (i = 0; i < IEEE80211_NUM_TIDS; i++) { |
189 | __ieee80211_stop_tx_ba_session(sta, i, WLAN_BACK_INITIATOR, tx); | 189 | __ieee80211_stop_tx_ba_session(sta, i, WLAN_BACK_INITIATOR, tx); |
190 | __ieee80211_stop_rx_ba_session(sta, i, WLAN_BACK_RECIPIENT, | 190 | __ieee80211_stop_rx_ba_session(sta, i, WLAN_BACK_RECIPIENT, |
191 | WLAN_REASON_QSTA_LEAVE_QBSS, tx); | 191 | WLAN_REASON_QSTA_LEAVE_QBSS, tx); |
@@ -209,7 +209,7 @@ void ieee80211_ba_session_work(struct work_struct *work) | |||
209 | return; | 209 | return; |
210 | 210 | ||
211 | mutex_lock(&sta->ampdu_mlme.mtx); | 211 | mutex_lock(&sta->ampdu_mlme.mtx); |
212 | for (tid = 0; tid < STA_TID_NUM; tid++) { | 212 | for (tid = 0; tid < IEEE80211_NUM_TIDS; tid++) { |
213 | if (test_and_clear_bit(tid, sta->ampdu_mlme.tid_rx_timer_expired)) | 213 | if (test_and_clear_bit(tid, sta->ampdu_mlme.tid_rx_timer_expired)) |
214 | ___ieee80211_stop_rx_ba_session( | 214 | ___ieee80211_stop_rx_ba_session( |
215 | sta, tid, WLAN_BACK_RECIPIENT, | 215 | sta, tid, WLAN_BACK_RECIPIENT, |
diff --git a/net/mac80211/key.c b/net/mac80211/key.c index 0f18ef59392d..619c5d697999 100644 --- a/net/mac80211/key.c +++ b/net/mac80211/key.c | |||
@@ -339,7 +339,7 @@ struct ieee80211_key *ieee80211_key_alloc(u32 cipher, int idx, size_t key_len, | |||
339 | key->conf.iv_len = TKIP_IV_LEN; | 339 | key->conf.iv_len = TKIP_IV_LEN; |
340 | key->conf.icv_len = TKIP_ICV_LEN; | 340 | key->conf.icv_len = TKIP_ICV_LEN; |
341 | if (seq) { | 341 | if (seq) { |
342 | for (i = 0; i < NUM_RX_DATA_QUEUES; i++) { | 342 | for (i = 0; i < IEEE80211_NUM_TIDS; i++) { |
343 | key->u.tkip.rx[i].iv32 = | 343 | key->u.tkip.rx[i].iv32 = |
344 | get_unaligned_le32(&seq[2]); | 344 | get_unaligned_le32(&seq[2]); |
345 | key->u.tkip.rx[i].iv16 = | 345 | key->u.tkip.rx[i].iv16 = |
@@ -352,7 +352,7 @@ struct ieee80211_key *ieee80211_key_alloc(u32 cipher, int idx, size_t key_len, | |||
352 | key->conf.iv_len = CCMP_HDR_LEN; | 352 | key->conf.iv_len = CCMP_HDR_LEN; |
353 | key->conf.icv_len = CCMP_MIC_LEN; | 353 | key->conf.icv_len = CCMP_MIC_LEN; |
354 | if (seq) { | 354 | if (seq) { |
355 | for (i = 0; i < NUM_RX_DATA_QUEUES + 1; i++) | 355 | for (i = 0; i < IEEE80211_NUM_TIDS + 1; i++) |
356 | for (j = 0; j < CCMP_PN_LEN; j++) | 356 | for (j = 0; j < CCMP_PN_LEN; j++) |
357 | key->u.ccmp.rx_pn[i][j] = | 357 | key->u.ccmp.rx_pn[i][j] = |
358 | seq[CCMP_PN_LEN - j - 1]; | 358 | seq[CCMP_PN_LEN - j - 1]; |
@@ -655,16 +655,16 @@ void ieee80211_get_key_rx_seq(struct ieee80211_key_conf *keyconf, | |||
655 | 655 | ||
656 | switch (key->conf.cipher) { | 656 | switch (key->conf.cipher) { |
657 | case WLAN_CIPHER_SUITE_TKIP: | 657 | case WLAN_CIPHER_SUITE_TKIP: |
658 | if (WARN_ON(tid < 0 || tid >= NUM_RX_DATA_QUEUES)) | 658 | if (WARN_ON(tid < 0 || tid >= IEEE80211_NUM_TIDS)) |
659 | return; | 659 | return; |
660 | seq->tkip.iv32 = key->u.tkip.rx[tid].iv32; | 660 | seq->tkip.iv32 = key->u.tkip.rx[tid].iv32; |
661 | seq->tkip.iv16 = key->u.tkip.rx[tid].iv16; | 661 | seq->tkip.iv16 = key->u.tkip.rx[tid].iv16; |
662 | break; | 662 | break; |
663 | case WLAN_CIPHER_SUITE_CCMP: | 663 | case WLAN_CIPHER_SUITE_CCMP: |
664 | if (WARN_ON(tid < -1 || tid >= NUM_RX_DATA_QUEUES)) | 664 | if (WARN_ON(tid < -1 || tid >= IEEE80211_NUM_TIDS)) |
665 | return; | 665 | return; |
666 | if (tid < 0) | 666 | if (tid < 0) |
667 | pn = key->u.ccmp.rx_pn[NUM_RX_DATA_QUEUES]; | 667 | pn = key->u.ccmp.rx_pn[IEEE80211_NUM_TIDS]; |
668 | else | 668 | else |
669 | pn = key->u.ccmp.rx_pn[tid]; | 669 | pn = key->u.ccmp.rx_pn[tid]; |
670 | memcpy(seq->ccmp.pn, pn, CCMP_PN_LEN); | 670 | memcpy(seq->ccmp.pn, pn, CCMP_PN_LEN); |
diff --git a/net/mac80211/key.h b/net/mac80211/key.h index 7d4e31f037d7..7cff0d3a519c 100644 --- a/net/mac80211/key.h +++ b/net/mac80211/key.h | |||
@@ -30,8 +30,6 @@ | |||
30 | #define TKIP_ICV_LEN 4 | 30 | #define TKIP_ICV_LEN 4 |
31 | #define CMAC_PN_LEN 6 | 31 | #define CMAC_PN_LEN 6 |
32 | 32 | ||
33 | #define NUM_RX_DATA_QUEUES 16 | ||
34 | |||
35 | struct ieee80211_local; | 33 | struct ieee80211_local; |
36 | struct ieee80211_sub_if_data; | 34 | struct ieee80211_sub_if_data; |
37 | struct sta_info; | 35 | struct sta_info; |
@@ -82,17 +80,17 @@ struct ieee80211_key { | |||
82 | struct tkip_ctx tx; | 80 | struct tkip_ctx tx; |
83 | 81 | ||
84 | /* last received RSC */ | 82 | /* last received RSC */ |
85 | struct tkip_ctx rx[NUM_RX_DATA_QUEUES]; | 83 | struct tkip_ctx rx[IEEE80211_NUM_TIDS]; |
86 | } tkip; | 84 | } tkip; |
87 | struct { | 85 | struct { |
88 | atomic64_t tx_pn; | 86 | atomic64_t tx_pn; |
89 | /* | 87 | /* |
90 | * Last received packet number. The first | 88 | * Last received packet number. The first |
91 | * NUM_RX_DATA_QUEUES counters are used with Data | 89 | * IEEE80211_NUM_TIDS counters are used with Data |
92 | * frames and the last counter is used with Robust | 90 | * frames and the last counter is used with Robust |
93 | * Management frames. | 91 | * Management frames. |
94 | */ | 92 | */ |
95 | u8 rx_pn[NUM_RX_DATA_QUEUES + 1][CCMP_PN_LEN]; | 93 | u8 rx_pn[IEEE80211_NUM_TIDS + 1][CCMP_PN_LEN]; |
96 | struct crypto_cipher *tfm; | 94 | struct crypto_cipher *tfm; |
97 | u32 replays; /* dot11RSNAStatsCCMPReplays */ | 95 | u32 replays; /* dot11RSNAStatsCCMPReplays */ |
98 | } ccmp; | 96 | } ccmp; |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index e3daee8fdf7a..8480bbf1a707 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -408,10 +408,10 @@ static void ieee80211_parse_qos(struct ieee80211_rx_data *rx) | |||
408 | * | 408 | * |
409 | * We also use that counter for non-QoS STAs. | 409 | * We also use that counter for non-QoS STAs. |
410 | */ | 410 | */ |
411 | seqno_idx = NUM_RX_DATA_QUEUES; | 411 | seqno_idx = IEEE80211_NUM_TIDS; |
412 | security_idx = 0; | 412 | security_idx = 0; |
413 | if (ieee80211_is_mgmt(hdr->frame_control)) | 413 | if (ieee80211_is_mgmt(hdr->frame_control)) |
414 | security_idx = NUM_RX_DATA_QUEUES; | 414 | security_idx = IEEE80211_NUM_TIDS; |
415 | tid = 0; | 415 | tid = 0; |
416 | } | 416 | } |
417 | 417 | ||
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c index f7bb54f9ab72..a0836d7187c1 100644 --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c | |||
@@ -142,7 +142,7 @@ static void free_sta_work(struct work_struct *wk) | |||
142 | * drivers have to handle aggregation stop being requested, followed | 142 | * drivers have to handle aggregation stop being requested, followed |
143 | * directly by station destruction. | 143 | * directly by station destruction. |
144 | */ | 144 | */ |
145 | for (i = 0; i < STA_TID_NUM; i++) { | 145 | for (i = 0; i < IEEE80211_NUM_TIDS; i++) { |
146 | tid_tx = rcu_dereference_raw(sta->ampdu_mlme.tid_tx[i]); | 146 | tid_tx = rcu_dereference_raw(sta->ampdu_mlme.tid_tx[i]); |
147 | if (!tid_tx) | 147 | if (!tid_tx) |
148 | continue; | 148 | continue; |
@@ -330,7 +330,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata, | |||
330 | return NULL; | 330 | return NULL; |
331 | } | 331 | } |
332 | 332 | ||
333 | for (i = 0; i < STA_TID_NUM; i++) { | 333 | for (i = 0; i < IEEE80211_NUM_TIDS; i++) { |
334 | /* | 334 | /* |
335 | * timer_to_tid must be initialized with identity mapping | 335 | * timer_to_tid must be initialized with identity mapping |
336 | * to enable session_timer's data differentiation. See | 336 | * to enable session_timer's data differentiation. See |
@@ -343,7 +343,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata, | |||
343 | skb_queue_head_init(&sta->tx_filtered[i]); | 343 | skb_queue_head_init(&sta->tx_filtered[i]); |
344 | } | 344 | } |
345 | 345 | ||
346 | for (i = 0; i < NUM_RX_DATA_QUEUES; i++) | 346 | for (i = 0; i < IEEE80211_NUM_TIDS; i++) |
347 | sta->last_seq_ctrl[i] = cpu_to_le16(USHRT_MAX); | 347 | sta->last_seq_ctrl[i] = cpu_to_le16(USHRT_MAX); |
348 | 348 | ||
349 | sta_dbg(sdata, "Allocated STA %pM\n", sta->sta.addr); | 349 | sta_dbg(sdata, "Allocated STA %pM\n", sta->sta.addr); |
@@ -985,7 +985,7 @@ void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta) | |||
985 | 985 | ||
986 | clear_sta_flag(sta, WLAN_STA_SP); | 986 | clear_sta_flag(sta, WLAN_STA_SP); |
987 | 987 | ||
988 | BUILD_BUG_ON(BITS_TO_LONGS(STA_TID_NUM) > 1); | 988 | BUILD_BUG_ON(BITS_TO_LONGS(IEEE80211_NUM_TIDS) > 1); |
989 | sta->driver_buffered_tids = 0; | 989 | sta->driver_buffered_tids = 0; |
990 | 990 | ||
991 | if (!(local->hw.flags & IEEE80211_HW_AP_LINK_PS)) | 991 | if (!(local->hw.flags & IEEE80211_HW_AP_LINK_PS)) |
@@ -1369,7 +1369,7 @@ void ieee80211_sta_set_buffered(struct ieee80211_sta *pubsta, | |||
1369 | { | 1369 | { |
1370 | struct sta_info *sta = container_of(pubsta, struct sta_info, sta); | 1370 | struct sta_info *sta = container_of(pubsta, struct sta_info, sta); |
1371 | 1371 | ||
1372 | if (WARN_ON(tid >= STA_TID_NUM)) | 1372 | if (WARN_ON(tid >= IEEE80211_NUM_TIDS)) |
1373 | return; | 1373 | return; |
1374 | 1374 | ||
1375 | if (buffered) | 1375 | if (buffered) |
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h index c88f161f8118..776f3d0b4a47 100644 --- a/net/mac80211/sta_info.h +++ b/net/mac80211/sta_info.h | |||
@@ -80,7 +80,6 @@ enum ieee80211_sta_info_flags { | |||
80 | WLAN_STA_TOFFSET_KNOWN, | 80 | WLAN_STA_TOFFSET_KNOWN, |
81 | }; | 81 | }; |
82 | 82 | ||
83 | #define STA_TID_NUM 16 | ||
84 | #define ADDBA_RESP_INTERVAL HZ | 83 | #define ADDBA_RESP_INTERVAL HZ |
85 | #define HT_AGG_MAX_RETRIES 15 | 84 | #define HT_AGG_MAX_RETRIES 15 |
86 | #define HT_AGG_BURST_RETRIES 3 | 85 | #define HT_AGG_BURST_RETRIES 3 |
@@ -197,15 +196,15 @@ struct tid_ampdu_rx { | |||
197 | struct sta_ampdu_mlme { | 196 | struct sta_ampdu_mlme { |
198 | struct mutex mtx; | 197 | struct mutex mtx; |
199 | /* rx */ | 198 | /* rx */ |
200 | struct tid_ampdu_rx __rcu *tid_rx[STA_TID_NUM]; | 199 | struct tid_ampdu_rx __rcu *tid_rx[IEEE80211_NUM_TIDS]; |
201 | unsigned long tid_rx_timer_expired[BITS_TO_LONGS(STA_TID_NUM)]; | 200 | unsigned long tid_rx_timer_expired[BITS_TO_LONGS(IEEE80211_NUM_TIDS)]; |
202 | unsigned long tid_rx_stop_requested[BITS_TO_LONGS(STA_TID_NUM)]; | 201 | unsigned long tid_rx_stop_requested[BITS_TO_LONGS(IEEE80211_NUM_TIDS)]; |
203 | /* tx */ | 202 | /* tx */ |
204 | struct work_struct work; | 203 | struct work_struct work; |
205 | struct tid_ampdu_tx __rcu *tid_tx[STA_TID_NUM]; | 204 | struct tid_ampdu_tx __rcu *tid_tx[IEEE80211_NUM_TIDS]; |
206 | struct tid_ampdu_tx *tid_start_tx[STA_TID_NUM]; | 205 | struct tid_ampdu_tx *tid_start_tx[IEEE80211_NUM_TIDS]; |
207 | unsigned long last_addba_req_time[STA_TID_NUM]; | 206 | unsigned long last_addba_req_time[IEEE80211_NUM_TIDS]; |
208 | u8 addba_req_num[STA_TID_NUM]; | 207 | u8 addba_req_num[IEEE80211_NUM_TIDS]; |
209 | u8 dialog_token_allocator; | 208 | u8 dialog_token_allocator; |
210 | }; | 209 | }; |
211 | 210 | ||
@@ -330,7 +329,7 @@ struct sta_info { | |||
330 | int last_signal; | 329 | int last_signal; |
331 | struct ewma avg_signal; | 330 | struct ewma avg_signal; |
332 | /* Plus 1 for non-QoS frames */ | 331 | /* Plus 1 for non-QoS frames */ |
333 | __le16 last_seq_ctrl[NUM_RX_DATA_QUEUES + 1]; | 332 | __le16 last_seq_ctrl[IEEE80211_NUM_TIDS + 1]; |
334 | 333 | ||
335 | /* Updated from TX status path only, no locking requirements */ | 334 | /* Updated from TX status path only, no locking requirements */ |
336 | unsigned long tx_filtered_count; | 335 | unsigned long tx_filtered_count; |
@@ -351,7 +350,7 @@ struct sta_info { | |||
351 | * Aggregation information, locked with lock. | 350 | * Aggregation information, locked with lock. |
352 | */ | 351 | */ |
353 | struct sta_ampdu_mlme ampdu_mlme; | 352 | struct sta_ampdu_mlme ampdu_mlme; |
354 | u8 timer_to_tid[STA_TID_NUM]; | 353 | u8 timer_to_tid[IEEE80211_NUM_TIDS]; |
355 | 354 | ||
356 | #ifdef CONFIG_MAC80211_MESH | 355 | #ifdef CONFIG_MAC80211_MESH |
357 | /* | 356 | /* |