ath9k: Fix kernel panic on module unload
The commit "ath9k: configure beacons based on hw opmode" introduced a regression which leads to kernel panic. Failed to stop ani timer during the driver unload while any of the beaconing vif is running. Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
d0ef824b9a
Коммит
f60c49b67d
|
@ -320,6 +320,7 @@ void ath_beacon_return(struct ath_softc *sc, struct ath_vif *avp)
|
||||||
if (avp->av_bcbuf != NULL) {
|
if (avp->av_bcbuf != NULL) {
|
||||||
struct ath_buf *bf;
|
struct ath_buf *bf;
|
||||||
|
|
||||||
|
avp->is_bslot_active = false;
|
||||||
if (avp->av_bslot != -1) {
|
if (avp->av_bslot != -1) {
|
||||||
sc->beacon.bslot[avp->av_bslot] = NULL;
|
sc->beacon.bslot[avp->av_bslot] = NULL;
|
||||||
sc->nbcnvifs--;
|
sc->nbcnvifs--;
|
||||||
|
|
|
@ -1375,6 +1375,9 @@ static void ath9k_calculate_summary_state(struct ieee80211_hw *hw,
|
||||||
if ((iter_data.naps + iter_data.nadhocs) > 0) {
|
if ((iter_data.naps + iter_data.nadhocs) > 0) {
|
||||||
sc->sc_flags |= SC_OP_ANI_RUN;
|
sc->sc_flags |= SC_OP_ANI_RUN;
|
||||||
ath_start_ani(common);
|
ath_start_ani(common);
|
||||||
|
} else {
|
||||||
|
sc->sc_flags &= ~SC_OP_ANI_RUN;
|
||||||
|
del_timer_sync(&common->ani.timer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче