diff options
-rw-r--r-- | drivers/net/wireless/ath/ath9k/common.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/common.c b/drivers/net/wireless/ath/ath9k/common.c index b4424a623cf5..579e15fb4143 100644 --- a/drivers/net/wireless/ath/ath9k/common.c +++ b/drivers/net/wireless/ath/ath9k/common.c | |||
@@ -57,13 +57,19 @@ static bool ath9k_rx_accept(struct ath_common *common, | |||
57 | * rs_more indicates chained descriptors which can be used | 57 | * rs_more indicates chained descriptors which can be used |
58 | * to link buffers together for a sort of scatter-gather | 58 | * to link buffers together for a sort of scatter-gather |
59 | * operation. | 59 | * operation. |
60 | * | 60 | * reject the frame, we don't support scatter-gather yet and |
61 | * the frame is probably corrupt anyway | ||
62 | */ | ||
63 | if (rx_stats->rs_more) | ||
64 | return false; | ||
65 | |||
66 | /* | ||
61 | * The rx_stats->rs_status will not be set until the end of the | 67 | * The rx_stats->rs_status will not be set until the end of the |
62 | * chained descriptors so it can be ignored if rs_more is set. The | 68 | * chained descriptors so it can be ignored if rs_more is set. The |
63 | * rs_more will be false at the last element of the chained | 69 | * rs_more will be false at the last element of the chained |
64 | * descriptors. | 70 | * descriptors. |
65 | */ | 71 | */ |
66 | if (!rx_stats->rs_more && rx_stats->rs_status != 0) { | 72 | if (rx_stats->rs_status != 0) { |
67 | if (rx_stats->rs_status & ATH9K_RXERR_CRC) | 73 | if (rx_stats->rs_status & ATH9K_RXERR_CRC) |
68 | rxs->flag |= RX_FLAG_FAILED_FCS_CRC; | 74 | rxs->flag |= RX_FLAG_FAILED_FCS_CRC; |
69 | if (rx_stats->rs_status & ATH9K_RXERR_PHY) | 75 | if (rx_stats->rs_status & ATH9K_RXERR_PHY) |