Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a758134 authored by Tim Harvey's avatar Tim Harvey Committed by John W. Linville
Browse files

ath9k: fix possible hang on flush



If a flush is requested, make sure to clear the descriptor once we've
processed it.

This resolves a hang that will occur if all RX descriptors are full when a
flush is requested.

Signed-off-by: default avatarTim Harvey <tharvey@gateworks.com>
Acked-by: default avatarFelix Fietkau <nbd@openwrt.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 328e203f
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1113,13 +1113,12 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
		}
requeue:
		list_add_tail(&bf->list, &sc->rx.rxbuf);
		if (flush)
			continue;

		if (edma) {
			ath_rx_edma_buf_link(sc, qtype);
		} else {
			ath_rx_buf_relink(sc, bf);
			if (!flush)
				ath9k_hw_rxena(ah);
		}
	} while (1);