mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-24 17:44:17 +01:00
msk/sk: Use a bus_child_deleted method to free ivars for children
Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D47365
This commit is contained in:
parent
79dfe2b761
commit
2ff5c85027
@ -252,6 +252,7 @@ static const char *model_name[] = {
|
|||||||
|
|
||||||
static int mskc_probe(device_t);
|
static int mskc_probe(device_t);
|
||||||
static int mskc_attach(device_t);
|
static int mskc_attach(device_t);
|
||||||
|
static void mskc_child_deleted(device_t, device_t);
|
||||||
static int mskc_detach(device_t);
|
static int mskc_detach(device_t);
|
||||||
static int mskc_shutdown(device_t);
|
static int mskc_shutdown(device_t);
|
||||||
static int mskc_setup_rambuffer(struct msk_softc *);
|
static int mskc_setup_rambuffer(struct msk_softc *);
|
||||||
@ -335,6 +336,7 @@ static device_method_t mskc_methods[] = {
|
|||||||
DEVMETHOD(device_resume, mskc_resume),
|
DEVMETHOD(device_resume, mskc_resume),
|
||||||
DEVMETHOD(device_shutdown, mskc_shutdown),
|
DEVMETHOD(device_shutdown, mskc_shutdown),
|
||||||
|
|
||||||
|
DEVMETHOD(bus_child_deleted, mskc_child_deleted),
|
||||||
DEVMETHOD(bus_get_dma_tag, mskc_get_dma_tag),
|
DEVMETHOD(bus_get_dma_tag, mskc_get_dma_tag),
|
||||||
|
|
||||||
DEVMETHOD_END
|
DEVMETHOD_END
|
||||||
@ -2046,6 +2048,12 @@ msk_detach(device_t dev)
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
mskc_child_deleted(device_t dev, device_t child)
|
||||||
|
{
|
||||||
|
free(device_get_ivars(child), M_DEVBUF);
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mskc_detach(device_t dev)
|
mskc_detach(device_t dev)
|
||||||
{
|
{
|
||||||
@ -2056,13 +2064,9 @@ mskc_detach(device_t dev)
|
|||||||
|
|
||||||
if (device_is_alive(dev)) {
|
if (device_is_alive(dev)) {
|
||||||
if (sc->msk_devs[MSK_PORT_A] != NULL) {
|
if (sc->msk_devs[MSK_PORT_A] != NULL) {
|
||||||
free(device_get_ivars(sc->msk_devs[MSK_PORT_A]),
|
|
||||||
M_DEVBUF);
|
|
||||||
device_delete_child(dev, sc->msk_devs[MSK_PORT_A]);
|
device_delete_child(dev, sc->msk_devs[MSK_PORT_A]);
|
||||||
}
|
}
|
||||||
if (sc->msk_devs[MSK_PORT_B] != NULL) {
|
if (sc->msk_devs[MSK_PORT_B] != NULL) {
|
||||||
free(device_get_ivars(sc->msk_devs[MSK_PORT_B]),
|
|
||||||
M_DEVBUF);
|
|
||||||
device_delete_child(dev, sc->msk_devs[MSK_PORT_B]);
|
device_delete_child(dev, sc->msk_devs[MSK_PORT_B]);
|
||||||
}
|
}
|
||||||
bus_generic_detach(dev);
|
bus_generic_detach(dev);
|
||||||
|
@ -185,6 +185,7 @@ static const struct sk_type sk_devs[] = {
|
|||||||
|
|
||||||
static int skc_probe(device_t);
|
static int skc_probe(device_t);
|
||||||
static int skc_attach(device_t);
|
static int skc_attach(device_t);
|
||||||
|
static void skc_child_deleted(device_t, device_t);
|
||||||
static int skc_detach(device_t);
|
static int skc_detach(device_t);
|
||||||
static int skc_shutdown(device_t);
|
static int skc_shutdown(device_t);
|
||||||
static int skc_suspend(device_t);
|
static int skc_suspend(device_t);
|
||||||
@ -291,6 +292,7 @@ static device_method_t skc_methods[] = {
|
|||||||
DEVMETHOD(device_resume, skc_resume),
|
DEVMETHOD(device_resume, skc_resume),
|
||||||
DEVMETHOD(device_shutdown, skc_shutdown),
|
DEVMETHOD(device_shutdown, skc_shutdown),
|
||||||
|
|
||||||
|
DEVMETHOD(bus_child_deleted, skc_child_deleted),
|
||||||
DEVMETHOD(bus_get_dma_tag, skc_get_dma_tag),
|
DEVMETHOD(bus_get_dma_tag, skc_get_dma_tag),
|
||||||
|
|
||||||
DEVMETHOD_END
|
DEVMETHOD_END
|
||||||
@ -1738,6 +1740,12 @@ fail:
|
|||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
skc_child_deleted(device_t dev, device_t child)
|
||||||
|
{
|
||||||
|
free(device_get_ivars(child), M_DEVBUF);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Shutdown hardware and free up resources. This can be called any
|
* Shutdown hardware and free up resources. This can be called any
|
||||||
* time after the mutex has been initialized. It is called in both
|
* time after the mutex has been initialized. It is called in both
|
||||||
@ -1796,11 +1804,9 @@ skc_detach(device_t dev)
|
|||||||
|
|
||||||
if (device_is_alive(dev)) {
|
if (device_is_alive(dev)) {
|
||||||
if (sc->sk_devs[SK_PORT_A] != NULL) {
|
if (sc->sk_devs[SK_PORT_A] != NULL) {
|
||||||
free(device_get_ivars(sc->sk_devs[SK_PORT_A]), M_DEVBUF);
|
|
||||||
device_delete_child(dev, sc->sk_devs[SK_PORT_A]);
|
device_delete_child(dev, sc->sk_devs[SK_PORT_A]);
|
||||||
}
|
}
|
||||||
if (sc->sk_devs[SK_PORT_B] != NULL) {
|
if (sc->sk_devs[SK_PORT_B] != NULL) {
|
||||||
free(device_get_ivars(sc->sk_devs[SK_PORT_B]), M_DEVBUF);
|
|
||||||
device_delete_child(dev, sc->sk_devs[SK_PORT_B]);
|
device_delete_child(dev, sc->sk_devs[SK_PORT_B]);
|
||||||
}
|
}
|
||||||
bus_generic_detach(dev);
|
bus_generic_detach(dev);
|
||||||
|
Loading…
Reference in New Issue
Block a user