aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/ath9k.h
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-04-07 18:04:11 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-04-10 14:10:33 -0400
commit723e711356b5a8a95728a890e254e8b0d47b55cf (patch)
tree23f3c8856b72438a40b7bbbb47283a5ca1eb54b3 /drivers/net/wireless/ath/ath9k/ath9k.h
parent2e1cd495466d14c7d92e10d709f27161afe44b15 (diff)
ath9k: fix handling of broken descriptors
As the comment in ath_get_next_rx_buf indicates, if a descriptor with the done bit set follows one with the done bit cleared, both descriptors should be discarded, however the driver is not doing that yet. To fix this, use the rs->rs_more flag as an indicator that the following frame should be discarded. This also helps with the split buffer case: if the first part of the frame is discarded, the following parts need to be discarded as well, since they contain no valid header or usable data. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ath9k.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index a56b2416e2f9..86d35726edb4 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -311,6 +311,7 @@ struct ath_rx_edma {
311struct ath_rx { 311struct ath_rx {
312 u8 defant; 312 u8 defant;
313 u8 rxotherant; 313 u8 rxotherant;
314 bool discard_next;
314 u32 *rxlink; 315 u32 *rxlink;
315 u32 num_pkts; 316 u32 num_pkts;
316 unsigned int rxfilter; 317 unsigned int rxfilter;