diff options
-rw-r--r-- | sys/dev/re/if_re.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c index d3328e0..de9b273 100644 --- a/sys/dev/re/if_re.c +++ b/sys/dev/re/if_re.c @@ -1365,6 +1365,8 @@ re_detach(dev) re_stop(sc); RL_UNLOCK(sc); callout_drain(&sc->rl_stat_callout); + taskqueue_drain(taskqueue_fast, &sc->rl_inttask); + taskqueue_drain(taskqueue_fast, &sc->rl_txtask); /* * Force off the IFF_UP flag here, in case someone * still had a BPF descriptor attached to this @@ -1398,10 +1400,6 @@ re_detach(dev) if (sc->rl_res) bus_release_resource(dev, RL_RES, RL_RID, sc->rl_res); - /* Yield the CPU long enough for any tasks to drain */ - - tsleep(sc, PPAUSE, "rewait", hz); - /* Unload and free the RX DMA ring memory and map */ if (sc->rl_ldata.rl_rx_list_tag) { |