mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-06 09:10:28 +00:00
Run the fatal proc as a proc, rather than where it currently is.
Otherwise the reset path will sleep, which it can't do in this context.
This commit is contained in:
parent
baf94755c0
commit
f846cf42ab
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=234369
|
@ -402,6 +402,7 @@ ath_attach(u_int16_t devid, struct ath_softc *sc)
|
|||
TASK_INIT(&sc->sc_bstucktask,0, ath_bstuck_proc, sc);
|
||||
TASK_INIT(&sc->sc_resettask,0, ath_reset_proc, sc);
|
||||
TASK_INIT(&sc->sc_txqtask,0, ath_txq_sched_tasklet, sc);
|
||||
TASK_INIT(&sc->sc_fataltask,0, ath_fatal_proc, sc);
|
||||
|
||||
/*
|
||||
* Allocate hardware transmit queues: one queue for
|
||||
|
@ -1527,7 +1528,7 @@ ath_intr(void *arg)
|
|||
if (status & HAL_INT_FATAL) {
|
||||
sc->sc_stats.ast_hardware++;
|
||||
ath_hal_intrset(ah, 0); /* disable intr's until reset */
|
||||
ath_fatal_proc(sc, 0);
|
||||
taskqueue_enqueue(sc->sc_tq, &sc->sc_fataltask);
|
||||
} else {
|
||||
if (status & HAL_INT_SWBA) {
|
||||
/*
|
||||
|
|
|
@ -508,6 +508,7 @@ struct ath_softc {
|
|||
struct task sc_bmisstask; /* bmiss int processing */
|
||||
struct task sc_bstucktask; /* stuck beacon processing */
|
||||
struct task sc_resettask; /* interface reset task */
|
||||
struct task sc_fataltask; /* fatal task */
|
||||
enum {
|
||||
OK, /* no change needed */
|
||||
UPDATE, /* update pending */
|
||||
|
|
Loading…
Reference in a new issue