mirror of
https://github.com/opnsense/src.git
synced 2026-06-15 03:31:11 -04:00
Use bus_detach_children instead of bus_generic_detach
These drivers perform additional teardown steps in between detaching child devices and deleting child devices. Differential Revision: https://reviews.freebsd.org/D47957
This commit is contained in:
parent
9be0058ea0
commit
e9d3857040
8 changed files with 9 additions and 9 deletions
|
|
@ -418,7 +418,7 @@ tegra_sdhci_detach(device_t dev)
|
|||
struct tegra_sdhci_softc *sc = device_get_softc(dev);
|
||||
struct sdhci_slot *slot = &sc->slot;
|
||||
|
||||
bus_generic_detach(dev);
|
||||
bus_detach_children(dev);
|
||||
sdhci_fdt_gpio_teardown(sc->gpio);
|
||||
clk_release(sc->clk);
|
||||
bus_teardown_intr(dev, sc->irq_res, sc->intr_cookie);
|
||||
|
|
|
|||
|
|
@ -729,7 +729,7 @@ cxgb_free(struct adapter *sc)
|
|||
/*
|
||||
* Make sure all child devices are gone.
|
||||
*/
|
||||
bus_generic_detach(sc->dev);
|
||||
bus_detach_children(sc->dev);
|
||||
for (i = 0; i < (sc)->params.nports; i++) {
|
||||
if (sc->portdev[i] &&
|
||||
device_delete_child(sc->dev, sc->portdev[i]) != 0)
|
||||
|
|
@ -1066,7 +1066,7 @@ cxgb_port_attach(device_t dev)
|
|||
|
||||
/*
|
||||
* cxgb_port_detach() is called via the device_detach methods when
|
||||
* cxgb_free() calls the bus_generic_detach. It is responsible for
|
||||
* cxgb_free() calls the bus_detach_children. It is responsible for
|
||||
* removing the device from the view of the kernel, i.e. from all
|
||||
* interfaces lists etc. This routine is only called when the driver is
|
||||
* being unloaded, not when the link goes down.
|
||||
|
|
|
|||
|
|
@ -1789,7 +1789,7 @@ t4_detach_common(device_t dev)
|
|||
}
|
||||
|
||||
if (device_is_attached(dev)) {
|
||||
rc = bus_generic_detach(dev);
|
||||
rc = bus_detach_children(dev);
|
||||
if (rc) {
|
||||
device_printf(dev,
|
||||
"failed to detach child devices: %d\n", rc);
|
||||
|
|
|
|||
|
|
@ -582,7 +582,7 @@ gpiobus_detach(device_t dev)
|
|||
("gpiobus mutex not initialized"));
|
||||
GPIOBUS_LOCK_DESTROY(sc);
|
||||
|
||||
if ((err = bus_generic_detach(dev)) != 0)
|
||||
if ((err = bus_detach_children(dev)) != 0)
|
||||
return (err);
|
||||
if ((err = device_delete_children(dev)) != 0)
|
||||
return (err);
|
||||
|
|
|
|||
|
|
@ -331,7 +331,7 @@ gpioiic_detach(device_t dev)
|
|||
struct gpioiic_softc *sc = device_get_softc(dev);
|
||||
int err;
|
||||
|
||||
if ((err = bus_generic_detach(dev)) != 0)
|
||||
if ((err = bus_detach_children(dev)) != 0)
|
||||
return (err);
|
||||
|
||||
gpioiic_cleanup(sc);
|
||||
|
|
|
|||
|
|
@ -1552,7 +1552,7 @@ pcib_detach(device_t dev)
|
|||
int error;
|
||||
|
||||
sc = device_get_softc(dev);
|
||||
error = bus_generic_detach(dev);
|
||||
error = bus_detach_children(dev);
|
||||
if (error)
|
||||
return (error);
|
||||
#ifdef PCI_HP
|
||||
|
|
|
|||
|
|
@ -666,7 +666,7 @@ sdhci_fdt_detach(device_t dev)
|
|||
struct sdhci_fdt_softc *sc = device_get_softc(dev);
|
||||
int i;
|
||||
|
||||
bus_generic_detach(dev);
|
||||
bus_detach_children(dev);
|
||||
bus_teardown_intr(dev, sc->irq_res, sc->intrhand);
|
||||
bus_release_resource(dev, SYS_RES_IRQ, rman_get_rid(sc->irq_res),
|
||||
sc->irq_res);
|
||||
|
|
|
|||
|
|
@ -592,7 +592,7 @@ sdhci_xenon_detach(device_t dev)
|
|||
{
|
||||
struct sdhci_xenon_softc *sc = device_get_softc(dev);
|
||||
|
||||
bus_generic_detach(dev);
|
||||
bus_detach_children(dev);
|
||||
bus_teardown_intr(dev, sc->irq_res, sc->intrhand);
|
||||
bus_release_resource(dev, SYS_RES_IRQ, rman_get_rid(sc->irq_res),
|
||||
sc->irq_res);
|
||||
|
|
|
|||
Loading…
Reference in a new issue