Add callout_drain()'s to foo_detach() after calling foo_stop() to make sure

that if softclock is running on another CPU and is blocked on our driver
lock, we will wait until it has acquired the lock, seen that it was
cancelled, dropped the lock, and awakened us so that we can safely destroy
the mutex.

MFC after:	3 days
This commit is contained in:
John Baldwin 2005-08-17 17:44:32 +00:00
parent c98ae70c21
commit 9eda9d7ac5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=149203
2 changed files with 2 additions and 0 deletions

View file

@ -901,6 +901,7 @@ fxp_detach(device_t dev)
CSR_WRITE_1(sc, FXP_CSR_SCB_INTRCNTL, FXP_SCB_INTR_DISABLE);
fxp_stop(sc);
FXP_UNLOCK(sc);
callout_drain(&sc->stat_ch);
/*
* Close down routes etc.

View file

@ -388,6 +388,7 @@ hme_detach(struct hme_softc *sc)
HME_LOCK(sc);
hme_stop(sc);
HME_UNLOCK(sc);
callout_drain(&sc->sc_tick_ch);
device_delete_child(sc->sc_dev, sc->sc_miibus);
for (i = 0; i < HME_NTXQ; i++) {