aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/ath/ath9k/recv.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
index 7e1a91af149..4633f513a80 100644
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -169,22 +169,17 @@ static void ath_rx_addbuffer_edma(struct ath_softc *sc,
169 enum ath9k_rx_qtype qtype, int size) 169 enum ath9k_rx_qtype qtype, int size)
170{ 170{
171 struct ath_common *common = ath9k_hw_common(sc->sc_ah); 171 struct ath_common *common = ath9k_hw_common(sc->sc_ah);
172 u32 nbuf = 0; 172 struct ath_buf *bf, *tbf;
173 173
174 if (list_empty(&sc->rx.rxbuf)) { 174 if (list_empty(&sc->rx.rxbuf)) {
175 ath_dbg(common, QUEUE, "No free rx buf available\n"); 175 ath_dbg(common, QUEUE, "No free rx buf available\n");
176 return; 176 return;
177 } 177 }
178 178
179 while (!list_empty(&sc->rx.rxbuf)) { 179 list_for_each_entry_safe(bf, tbf, &sc->rx.rxbuf, list)
180 nbuf++;
181
182 if (!ath_rx_edma_buf_link(sc, qtype)) 180 if (!ath_rx_edma_buf_link(sc, qtype))
183 break; 181 break;
184 182
185 if (nbuf >= size)
186 break;
187 }
188} 183}
189 184
190static void ath_rx_remove_buffer(struct ath_softc *sc, 185static void ath_rx_remove_buffer(struct ath_softc *sc,