|
@@ -306,10 +306,8 @@ static void ath_edma_start_recv(struct ath_softc *sc)
|
|
|
|
|
|
static void ath_edma_stop_recv(struct ath_softc *sc)
|
|
|
{
|
|
|
- spin_lock_bh(&sc->rx.rxbuflock);
|
|
|
ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_HP);
|
|
|
ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_LP);
|
|
|
- spin_unlock_bh(&sc->rx.rxbuflock);
|
|
|
}
|
|
|
|
|
|
int ath_rx_init(struct ath_softc *sc, int nbufs)
|
|
@@ -518,6 +516,7 @@ bool ath_stoprecv(struct ath_softc *sc)
|
|
|
struct ath_hw *ah = sc->sc_ah;
|
|
|
bool stopped;
|
|
|
|
|
|
+ spin_lock_bh(&sc->rx.rxbuflock);
|
|
|
ath9k_hw_stoppcurecv(ah);
|
|
|
ath9k_hw_setrxfilter(ah, 0);
|
|
|
stopped = ath9k_hw_stopdmarecv(ah);
|
|
@@ -526,6 +525,7 @@ bool ath_stoprecv(struct ath_softc *sc)
|
|
|
ath_edma_stop_recv(sc);
|
|
|
else
|
|
|
sc->rx.rxlink = NULL;
|
|
|
+ spin_unlock_bh(&sc->rx.rxbuflock);
|
|
|
|
|
|
return stopped;
|
|
|
}
|