--- ichsmb.c +++ ichsmb.c @@ -683,10 +683,11 @@ ichsmb_detach(device_t dev) error = bus_generic_detach(dev); if (error) return (error); - device_delete_child(dev, sc->smb); + error = device_delete_child(dev, sc->smb); + if (error) + return (error); ichsmb_release_resources(sc); lockuninit(&sc->mutex); return 0; }