add hw.ath.bstuck to control the stuck beacon threshold
This commit is contained in:
parent
22d9ca334e
commit
80e7762b02
@ -283,6 +283,10 @@ SYSCTL_INT(_hw_ath, OID_AUTO, txbuf, CTLFLAG_RW, &ath_txbuf,
|
|||||||
0, "tx buffers allocated");
|
0, "tx buffers allocated");
|
||||||
TUNABLE_INT("hw.ath.txbuf", &ath_txbuf);
|
TUNABLE_INT("hw.ath.txbuf", &ath_txbuf);
|
||||||
|
|
||||||
|
static int ath_bstuck_threshold = 4; /* max missed beacons */
|
||||||
|
SYSCTL_INT(_hw_ath, OID_AUTO, bstuck, CTLFLAG_RW, &ath_bstuck_threshold,
|
||||||
|
0, "max missed beacon xmits before chip reset");
|
||||||
|
|
||||||
#ifdef ATH_DEBUG
|
#ifdef ATH_DEBUG
|
||||||
enum {
|
enum {
|
||||||
ATH_DEBUG_XMIT = 0x00000001, /* basic xmit operation */
|
ATH_DEBUG_XMIT = 0x00000001, /* basic xmit operation */
|
||||||
@ -3118,7 +3122,7 @@ ath_beacon_proc(void *arg, int pending)
|
|||||||
DPRINTF(sc, ATH_DEBUG_BEACON,
|
DPRINTF(sc, ATH_DEBUG_BEACON,
|
||||||
"%s: missed %u consecutive beacons\n",
|
"%s: missed %u consecutive beacons\n",
|
||||||
__func__, sc->sc_bmisscount);
|
__func__, sc->sc_bmisscount);
|
||||||
if (sc->sc_bmisscount > 3) /* NB: 3 is a guess */
|
if (sc->sc_bmisscount >= ath_bstuck_threshold)
|
||||||
taskqueue_enqueue(sc->sc_tq, &sc->sc_bstucktask);
|
taskqueue_enqueue(sc->sc_tq, &sc->sc_bstucktask);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -7612,7 +7616,7 @@ ath_tdma_beacon_send(struct ath_softc *sc, struct ieee80211vap *vap)
|
|||||||
DPRINTF(sc, ATH_DEBUG_BEACON,
|
DPRINTF(sc, ATH_DEBUG_BEACON,
|
||||||
"%s: missed %u consecutive beacons\n",
|
"%s: missed %u consecutive beacons\n",
|
||||||
__func__, sc->sc_bmisscount);
|
__func__, sc->sc_bmisscount);
|
||||||
if (sc->sc_bmisscount > 3) /* NB: 3 is a guess */
|
if (sc->sc_bmisscount >= ath_bstuck_threshold)
|
||||||
taskqueue_enqueue(sc->sc_tq, &sc->sc_bstucktask);
|
taskqueue_enqueue(sc->sc_tq, &sc->sc_bstucktask);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user