Index: stable/11/sys/arm/allwinner/a10_ehci.c =================================================================== --- stable/11/sys/arm/allwinner/a10_ehci.c +++ stable/11/sys/arm/allwinner/a10_ehci.c @@ -278,17 +278,11 @@ struct aw_ehci_softc *aw_sc = device_get_softc(self); ehci_softc_t *sc = &aw_sc->sc; const struct aw_ehci_conf *conf; - device_t bdev; int err; uint32_t reg_value = 0; conf = USB_CONF(self); - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/arm/at91/at91_ohci.c =================================================================== --- stable/11/sys/arm/at91/at91_ohci.c +++ stable/11/sys/arm/at91/at91_ohci.c @@ -165,14 +165,8 @@ ohci_atmelarm_detach(device_t dev) { struct at91_ohci_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_ohci.sc_bus.bdev) { - bdev = sc->sc_ohci.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/arm/at91/at91_ohci_fdt.c =================================================================== --- stable/11/sys/arm/at91/at91_ohci_fdt.c +++ stable/11/sys/arm/at91/at91_ohci_fdt.c @@ -171,14 +171,8 @@ ohci_at91_fdt_detach(device_t dev) { struct at91_ohci_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_ohci.sc_bus.bdev) { - bdev = sc->sc_ohci.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/arm/cavium/cns11xx/ehci_ebus.c =================================================================== --- stable/11/sys/arm/cavium/cns11xx/ehci_ebus.c +++ stable/11/sys/arm/cavium/cns11xx/ehci_ebus.c @@ -184,14 +184,8 @@ ehci_ebus_detach(device_t self) { ehci_softc_t *sc = device_get_softc(self); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/arm/cavium/cns11xx/ohci_ec.c =================================================================== --- stable/11/sys/arm/cavium/cns11xx/ohci_ec.c +++ stable/11/sys/arm/cavium/cns11xx/ohci_ec.c @@ -177,14 +177,8 @@ ohci_ec_detach(device_t dev) { struct ec_ohci_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_ohci.sc_bus.bdev) { - bdev = sc->sc_ohci.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/arm/samsung/exynos/exynos5_xhci.c =================================================================== --- stable/11/sys/arm/samsung/exynos/exynos5_xhci.c +++ stable/11/sys/arm/samsung/exynos/exynos5_xhci.c @@ -288,14 +288,8 @@ exynos_xhci_detach(device_t dev) { struct exynos_xhci_softc *esc = device_get_softc(dev); - device_t bdev; int err; - if (esc->base.sc_bus.bdev != NULL) { - bdev = esc->base.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* During module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/arm/ti/am335x/am335x_musb.c =================================================================== --- stable/11/sys/arm/ti/am335x/am335x_musb.c +++ stable/11/sys/arm/ti/am335x/am335x_musb.c @@ -366,14 +366,10 @@ musbotg_detach(device_t dev) { struct musbotg_super_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_otg.sc_bus.bdev) { - bdev = sc->sc_otg.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } + /* during module unload there are lots of children leftover */ + device_delete_children(dev); if (sc->sc_otg.sc_irq_res && sc->sc_otg.sc_intr_hdl) { /* @@ -397,9 +393,6 @@ bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irq_rid, sc->sc_otg.sc_irq_res); - /* during module unload there are lots of children leftover */ - device_delete_children(dev); - return (0); } Index: stable/11/sys/arm/ti/usb/omap_ehci.c =================================================================== --- stable/11/sys/arm/ti/usb/omap_ehci.c +++ stable/11/sys/arm/ti/usb/omap_ehci.c @@ -392,15 +392,8 @@ { struct omap_ehci_softc *isc = device_get_softc(dev); ehci_softc_t *sc = &isc->base; - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } - /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/arm/xilinx/zy7_ehci.c =================================================================== --- stable/11/sys/arm/xilinx/zy7_ehci.c +++ stable/11/sys/arm/xilinx/zy7_ehci.c @@ -323,20 +323,17 @@ { ehci_softc_t *sc = device_get_softc(dev); + /* during module unload there are lots of children leftover */ + device_delete_children(dev); + sc->sc_flags &= ~EHCI_SCFLG_DONEINIT; - if (device_is_attached(dev)) - bus_generic_detach(dev); - if (sc->sc_irq_res && sc->sc_intr_hdl) /* call ehci_detach() after ehci_init() called after * successful bus_setup_intr(). */ ehci_detach(sc); - if (sc->sc_bus.bdev) { - device_detach(sc->sc_bus.bdev); - device_delete_child(dev, sc->sc_bus.bdev); - } + if (sc->sc_irq_res) { if (sc->sc_intr_hdl != NULL) bus_teardown_intr(dev, sc->sc_irq_res, Index: stable/11/sys/boot/kshim/bsd_kernel.c =================================================================== --- stable/11/sys/boot/kshim/bsd_kernel.c +++ stable/11/sys/boot/kshim/bsd_kernel.c @@ -817,8 +817,12 @@ int error = 0; device_t grandchild; - /* remove children first */ + /* detach parent before deleting children, if any */ + error = device_detach(child); + if (error) + goto done; + /* remove children second */ while ((grandchild = TAILQ_FIRST(&child->dev_children))) { error = device_delete_child(child, grandchild); if (error) { @@ -827,11 +831,6 @@ } } - error = device_detach(child); - - if (error) - goto done; - devclass_delete_device(child->dev_module, child); if (dev != NULL) { Index: stable/11/sys/dev/puc/puc.c =================================================================== --- stable/11/sys/dev/puc/puc.c +++ stable/11/sys/dev/puc/puc.c @@ -414,8 +414,7 @@ port = &sc->sc_port[idx]; if (port->p_dev == NULL) continue; - if (device_detach(port->p_dev) == 0) { - device_delete_child(dev, port->p_dev); + if (device_delete_child(dev, port->p_dev) == 0) { if (port->p_rres != NULL) rman_release_resource(port->p_rres); if (port->p_ires != NULL) Index: stable/11/sys/dev/usb/controller/at91dci_atmelarm.c =================================================================== --- stable/11/sys/dev/usb/controller/at91dci_atmelarm.c +++ stable/11/sys/dev/usb/controller/at91dci_atmelarm.c @@ -243,14 +243,8 @@ at91_udp_detach(device_t dev) { struct at91_udp_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_dci.sc_bus.bdev) { - bdev = sc->sc_dci.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/at91dci_fdt.c =================================================================== --- stable/11/sys/dev/usb/controller/at91dci_fdt.c +++ stable/11/sys/dev/usb/controller/at91dci_fdt.c @@ -249,14 +249,8 @@ at91_udp_detach(device_t dev) { struct at91_udp_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_dci.sc_bus.bdev) { - bdev = sc->sc_dci.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/atmegadci_atmelarm.c =================================================================== --- stable/11/sys/dev/usb/controller/atmegadci_atmelarm.c +++ stable/11/sys/dev/usb/controller/atmegadci_atmelarm.c @@ -155,14 +155,8 @@ atmegadci_detach(device_t dev) { struct atmegadci_super_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_otg.sc_bus.bdev) { - bdev = sc->sc_otg.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/dwc_otg_fdt.c =================================================================== --- stable/11/sys/dev/usb/controller/dwc_otg_fdt.c +++ stable/11/sys/dev/usb/controller/dwc_otg_fdt.c @@ -163,14 +163,8 @@ dwc_otg_detach(device_t dev) { struct dwc_otg_fdt_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_otg.sc_bus.bdev) { - bdev = sc->sc_otg.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/ehci_ixp4xx.c =================================================================== --- stable/11/sys/dev/usb/controller/ehci_ixp4xx.c +++ stable/11/sys/dev/usb/controller/ehci_ixp4xx.c @@ -221,14 +221,8 @@ { struct ixp_ehci_softc *isc = device_get_softc(self); ehci_softc_t *sc = &isc->base; - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/dev/usb/controller/ehci_mv.c =================================================================== --- stable/11/sys/dev/usb/controller/ehci_mv.c +++ stable/11/sys/dev/usb/controller/ehci_mv.c @@ -264,14 +264,8 @@ mv_ehci_detach(device_t self) { ehci_softc_t *sc = device_get_softc(self); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/dev/usb/controller/ehci_pci.c =================================================================== --- stable/11/sys/dev/usb/controller/ehci_pci.c +++ stable/11/sys/dev/usb/controller/ehci_pci.c @@ -477,13 +477,7 @@ ehci_pci_detach(device_t self) { ehci_softc_t *sc = device_get_softc(self); - device_t bdev; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/dev/usb/controller/generic_ehci.c =================================================================== --- stable/11/sys/dev/usb/controller/generic_ehci.c +++ stable/11/sys/dev/usb/controller/generic_ehci.c @@ -156,14 +156,8 @@ generic_ehci_detach(device_t self) { ehci_softc_t *sc = device_get_softc(self); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/dev/usb/controller/generic_ohci.c =================================================================== --- stable/11/sys/dev/usb/controller/generic_ohci.c +++ stable/11/sys/dev/usb/controller/generic_ohci.c @@ -214,18 +214,11 @@ generic_ohci_detach(device_t dev) { struct generic_ohci_softc *sc = device_get_softc(dev); - device_t bdev; int err; #ifdef EXT_RESOURCES struct clk_list *clk, *clk_tmp; #endif - if (sc->ohci_sc.sc_bus.bdev) { - bdev = sc->ohci_sc.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } - /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/musb_otg_atmelarm.c =================================================================== --- stable/11/sys/dev/usb/controller/musb_otg_atmelarm.c +++ stable/11/sys/dev/usb/controller/musb_otg_atmelarm.c @@ -204,14 +204,8 @@ musbotg_detach(device_t dev) { struct musbotg_super_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_otg.sc_bus.bdev) { - bdev = sc->sc_otg.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/ohci_pci.c =================================================================== --- stable/11/sys/dev/usb/controller/ohci_pci.c +++ stable/11/sys/dev/usb/controller/ohci_pci.c @@ -335,13 +335,7 @@ ohci_pci_detach(device_t self) { ohci_softc_t *sc = device_get_softc(self); - device_t bdev; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/dev/usb/controller/ohci_s3c24x0.c =================================================================== --- stable/11/sys/dev/usb/controller/ohci_s3c24x0.c +++ stable/11/sys/dev/usb/controller/ohci_s3c24x0.c @@ -148,14 +148,8 @@ ohci_s3c24x0_detach(device_t dev) { struct ohci_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/saf1761_otg_boot.c =================================================================== --- stable/11/sys/dev/usb/controller/saf1761_otg_boot.c +++ stable/11/sys/dev/usb/controller/saf1761_otg_boot.c @@ -124,13 +124,6 @@ saf1761_otg_fdt_detach(device_t dev) { struct saf1761_otg_softc *sc = device_get_softc(dev); - device_t bdev; - - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/saf1761_otg_fdt.c =================================================================== --- stable/11/sys/dev/usb/controller/saf1761_otg_fdt.c +++ stable/11/sys/dev/usb/controller/saf1761_otg_fdt.c @@ -238,14 +238,8 @@ saf1761_otg_fdt_detach(device_t dev) { struct saf1761_otg_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/uhci_pci.c =================================================================== --- stable/11/sys/dev/usb/controller/uhci_pci.c +++ stable/11/sys/dev/usb/controller/uhci_pci.c @@ -393,13 +393,7 @@ uhci_pci_detach(device_t self) { uhci_softc_t *sc = device_get_softc(self); - device_t bdev; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/dev/usb/controller/uss820dci_atmelarm.c =================================================================== --- stable/11/sys/dev/usb/controller/uss820dci_atmelarm.c +++ stable/11/sys/dev/usb/controller/uss820dci_atmelarm.c @@ -164,14 +164,8 @@ uss820_atmelarm_detach(device_t dev) { struct uss820dci_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/xhci_mv.c =================================================================== --- stable/11/sys/dev/usb/controller/xhci_mv.c +++ stable/11/sys/dev/usb/controller/xhci_mv.c @@ -171,15 +171,8 @@ xhci_detach(device_t dev) { struct xhci_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_bus.bdev != NULL) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } - /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/dev/usb/controller/xhci_pci.c =================================================================== --- stable/11/sys/dev/usb/controller/xhci_pci.c +++ stable/11/sys/dev/usb/controller/xhci_pci.c @@ -340,13 +340,7 @@ xhci_pci_detach(device_t self) { struct xhci_softc *sc = device_get_softc(self); - device_t bdev; - if (sc->sc_bus.bdev != NULL) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/dev/usb/usb_device.c =================================================================== --- stable/11/sys/dev/usb/usb_device.c +++ stable/11/sys/dev/usb/usb_device.c @@ -1103,10 +1103,8 @@ device_printf(dev, "Resume failed\n"); } } - if (device_detach(dev)) { - goto error; - } } + /* detach and delete child */ if (device_delete_child(udev->parent_dev, dev)) { goto error; } Index: stable/11/sys/dev/usb/video/udl.c =================================================================== --- stable/11/sys/dev/usb/video/udl.c +++ stable/11/sys/dev/usb/video/udl.c @@ -443,14 +443,9 @@ { struct udl_softc *sc = device_get_softc(dev); - if (sc->sc_fbdev != NULL) { - device_t bdev; + /* delete all child devices */ + device_delete_children(dev); - bdev = sc->sc_fbdev; - sc->sc_fbdev = NULL; - device_detach(bdev); - device_delete_child(dev, bdev); - } UDL_LOCK(sc); sc->sc_gone = 1; callout_stop(&sc->sc_callout); Index: stable/11/sys/kern/subr_bus.c =================================================================== --- stable/11/sys/kern/subr_bus.c +++ stable/11/sys/kern/subr_bus.c @@ -1949,15 +1949,17 @@ PDEBUG(("%s from %s", DEVICENAME(child), DEVICENAME(dev))); - /* remove children first */ + /* detach parent before deleting children, if any */ + if ((error = device_detach(child)) != 0) + return (error); + + /* remove children second */ while ((grandchild = TAILQ_FIRST(&child->children)) != NULL) { error = device_delete_child(child, grandchild); if (error) return (error); } - if ((error = device_detach(child)) != 0) - return (error); if (child->devclass) devclass_delete_device(child->devclass, child); if (child->parent) Index: stable/11/sys/mips/atheros/ar71xx_ehci.c =================================================================== --- stable/11/sys/mips/atheros/ar71xx_ehci.c +++ stable/11/sys/mips/atheros/ar71xx_ehci.c @@ -231,14 +231,8 @@ { struct ar71xx_ehci_softc *isc = device_get_softc(self); ehci_softc_t *sc = &isc->base; - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/mips/atheros/ar71xx_ohci.c =================================================================== --- stable/11/sys/mips/atheros/ar71xx_ohci.c +++ stable/11/sys/mips/atheros/ar71xx_ohci.c @@ -156,13 +156,7 @@ ar71xx_ohci_detach(device_t dev) { struct ar71xx_ohci_softc *sc = device_get_softc(dev); - device_t bdev; - if (sc->sc_ohci.sc_bus.bdev) { - bdev = sc->sc_ohci.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/mips/cavium/usb/octusb_octeon.c =================================================================== --- stable/11/sys/mips/cavium/usb/octusb_octeon.c +++ stable/11/sys/mips/cavium/usb/octusb_octeon.c @@ -160,16 +160,10 @@ octusb_octeon_detach(device_t dev) { struct octusb_octeon_softc *sc = device_get_softc(dev); - device_t bdev; int err; int nports; int i; - if (sc->sc_dci.sc_bus.bdev) { - bdev = sc->sc_dci.sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/mips/mediatek/mtk_dotg.c =================================================================== --- stable/11/sys/mips/mediatek/mtk_dotg.c +++ stable/11/sys/mips/mediatek/mtk_dotg.c @@ -161,14 +161,8 @@ dotg_fdt_detach(device_t dev) { struct dwc_otg_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/mips/mediatek/mtk_ehci.c =================================================================== --- stable/11/sys/mips/mediatek/mtk_ehci.c +++ stable/11/sys/mips/mediatek/mtk_ehci.c @@ -162,14 +162,8 @@ ehci_fdt_detach(device_t self) { ehci_softc_t *sc = device_get_softc(self); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/mips/mediatek/mtk_ohci.c =================================================================== --- stable/11/sys/mips/mediatek/mtk_ohci.c +++ stable/11/sys/mips/mediatek/mtk_ohci.c @@ -162,14 +162,8 @@ ohci_fdt_detach(device_t self) { ohci_softc_t *sc = device_get_softc(self); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/mips/mediatek/mtk_xhci.c =================================================================== --- stable/11/sys/mips/mediatek/mtk_xhci.c +++ stable/11/sys/mips/mediatek/mtk_xhci.c @@ -161,14 +161,8 @@ mtk_xhci_fdt_detach(device_t self) { struct xhci_softc *sc = device_get_softc(self); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/mips/rmi/xls_ehci.c =================================================================== --- stable/11/sys/mips/rmi/xls_ehci.c +++ stable/11/sys/mips/rmi/xls_ehci.c @@ -164,14 +164,8 @@ ehci_xls_detach(device_t self) { ehci_softc_t *sc = device_get_softc(self); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/mips/rt305x/rt305x_dotg.c =================================================================== --- stable/11/sys/mips/rt305x/rt305x_dotg.c +++ stable/11/sys/mips/rt305x/rt305x_dotg.c @@ -173,14 +173,8 @@ dotg_obio_detach(device_t dev) { struct dwc_otg_softc *sc = device_get_softc(dev); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(dev, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(dev); Index: stable/11/sys/mips/rt305x/rt305x_ehci.c =================================================================== --- stable/11/sys/mips/rt305x/rt305x_ehci.c +++ stable/11/sys/mips/rt305x/rt305x_ehci.c @@ -175,14 +175,8 @@ ehci_obio_detach(device_t self) { ehci_softc_t *sc = device_get_softc(self); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self); Index: stable/11/sys/mips/rt305x/rt305x_ohci.c =================================================================== --- stable/11/sys/mips/rt305x/rt305x_ohci.c +++ stable/11/sys/mips/rt305x/rt305x_ohci.c @@ -175,14 +175,8 @@ ohci_obio_detach(device_t self) { ohci_softc_t *sc = device_get_softc(self); - device_t bdev; int err; - if (sc->sc_bus.bdev) { - bdev = sc->sc_bus.bdev; - device_detach(bdev); - device_delete_child(self, bdev); - } /* during module unload there are lots of children leftover */ device_delete_children(self);