diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/status.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c index c06857bbd573..94475eb51d28 100644 --- a/net/mac80211/status.c +++ b/net/mac80211/status.c | |||
@@ -65,6 +65,16 @@ static void ieee80211_handle_filtered_frame(struct ieee80211_local *local, | |||
65 | 65 | ||
66 | sta->tx_filtered_count++; | 66 | sta->tx_filtered_count++; |
67 | 67 | ||
68 | /* | ||
69 | * Clear more-data bit on filtered frames, it might be set | ||
70 | * but later frames might time out so it might have to be | ||
71 | * clear again ... It's all rather unlikely (this frame | ||
72 | * should time out first, right?) but let's not confuse | ||
73 | * peers unnecessarily. | ||
74 | */ | ||
75 | if (hdr->frame_control & cpu_to_le16(IEEE80211_FCTL_MOREDATA)) | ||
76 | hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_MOREDATA); | ||
77 | |||
68 | if (ieee80211_is_data_qos(hdr->frame_control)) { | 78 | if (ieee80211_is_data_qos(hdr->frame_control)) { |
69 | int tid = *ieee80211_get_qos_ctl(hdr) & | 79 | int tid = *ieee80211_get_qos_ctl(hdr) & |
70 | IEEE80211_QOS_CTL_TID_MASK; | 80 | IEEE80211_QOS_CTL_TID_MASK; |