diff --git a/sys/arm/allwinner/aw_mmc.c b/sys/arm/allwinner/aw_mmc.c --- a/sys/arm/allwinner/aw_mmc.c +++ b/sys/arm/allwinner/aw_mmc.c @@ -482,7 +482,6 @@ aw_mmc_detach(device_t dev) { struct aw_mmc_softc *sc; - device_t d; sc = device_get_softc(dev); @@ -494,12 +493,7 @@ callout_drain(&sc->aw_timeoutc); - AW_MMC_LOCK(sc); - d = sc->child; - sc->child = NULL; - AW_MMC_UNLOCK(sc); - if (d != NULL) - device_delete_child(sc->aw_dev, d); + device_delete_children(sc->aw_dev); aw_mmc_teardown_dma(sc); diff --git a/sys/arm64/broadcom/genet/if_genet.c b/sys/arm64/broadcom/genet/if_genet.c --- a/sys/arm64/broadcom/genet/if_genet.c +++ b/sys/arm64/broadcom/genet/if_genet.c @@ -365,10 +365,7 @@ gen_destroy(struct gen_softc *sc) { - if (sc->miibus) { /* can't happen */ - device_delete_child(sc->dev, sc->miibus); - sc->miibus = NULL; - } + device_delete_children(sc->dev); bus_teardown_intr(sc->dev, sc->res[_RES_IRQ1], sc->ih); bus_teardown_intr(sc->dev, sc->res[_RES_IRQ2], sc->ih2); gen_bus_dma_teardown(sc); diff --git a/sys/dev/intpm/intpm.c b/sys/dev/intpm/intpm.c --- a/sys/dev/intpm/intpm.c +++ b/sys/dev/intpm/intpm.c @@ -202,8 +202,7 @@ { struct intsmb_softc *sc = device_get_softc(dev); - if (sc->smbus) - device_delete_child(dev, sc->smbus); + device_delete_children(dev); if (sc->irq_hand) bus_teardown_intr(dev, sc->irq_res, sc->irq_hand); if (sc->irq_res)