diff options
| -rw-r--r-- | sys/dev/fdc/fdc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c index a2193f048d6b..5846b0aa4463 100644 --- a/sys/dev/fdc/fdc.c +++ b/sys/dev/fdc/fdc.c @@ -1957,6 +1957,11 @@ fd_detach(device_t dev) struct fd_data *fd; fd = device_get_softc(dev); + g_topology_lock(); + g_wither_geom(fd->fd_geom, ENXIO); + g_topology_unlock(); + while (device_get_state(dev) == DS_BUSY) + tsleep(fd, PZERO, "fdd", hz/10); callout_drain(&fd->toffhandle); return (0); |
