Searched hist:"723 e711356b5a8a95728a890e254e8b0d47b55cf" (Results 1 – 2 of 2) sorted by relevance
/openbmc/linux/drivers/net/wireless/ath/ath9k/ |
H A D | recv.c | diff b7b146c9c9a0248cc57da71244f672ebc54bbef1 Mon Feb 24 15:26:06 CST 2014 Felix Fietkau <nbd@openwrt.org> ath9k: fix invalid descriptor discarding
Only set sc->rx.discard_next to rx_stats->rs_more when actually discarding the current descriptor.
Also, fix a detection of broken descriptors: First the code checks if the current descriptor is not done. Then it checks if the next descriptor is done. Add a check that afterwards checks the first descriptor again, because it might have been completed in the mean time.
This fixes a regression introduced in commit 723e711356b5a8a95728a890e254e8b0d47b55cf "ath9k: fix handling of broken descriptors"
Cc: stable@vger.kernel.org Reported-by: Marco André Dinis <marcoandredinis@gmail.com> Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com> diff 723e711356b5a8a95728a890e254e8b0d47b55cf Sun Apr 07 17:04:11 CDT 2013 Felix Fietkau <nbd@openwrt.org> 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>
|
H A D | ath9k.h | diff 723e711356b5a8a95728a890e254e8b0d47b55cf Sun Apr 07 17:04:11 CDT 2013 Felix Fietkau <nbd@openwrt.org> 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>
|