diff options
author | imp <imp@FreeBSD.org> | 2007-02-03 07:09:36 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2007-02-03 07:09:36 +0000 |
commit | 39fa690f180aa6cc00a4d132951ba4e306cd2e23 (patch) | |
tree | c9b687ce857d32227b34e6546ae8cfe6a4c407fc /sys/dev/pccard | |
parent | 929d8d99d7b7d6c9b712e7a69050dedd2c18e286 (diff) | |
download | FreeBSD-src-39fa690f180aa6cc00a4d132951ba4e306cd2e23.zip FreeBSD-src-39fa690f180aa6cc00a4d132951ba4e306cd2e23.tar.gz |
We need to free the ivars for the child that we just deleted.
Diffstat (limited to 'sys/dev/pccard')
-rw-r--r-- | sys/dev/pccard/pccard.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/pccard/pccard.c b/sys/dev/pccard/pccard.c index 260909a..45600ba 100644 --- a/sys/dev/pccard/pccard.c +++ b/sys/dev/pccard/pccard.c @@ -297,6 +297,7 @@ pccard_detach_card(device_t dev) struct pccard_softc *sc = PCCARD_SOFTC(dev); struct pccard_function *pf; struct pccard_config_entry *cfe; + struct pccard_ivar *devi; int state; /* @@ -312,7 +313,9 @@ pccard_detach_card(device_t dev) if (pf->cfe != NULL) pccard_function_disable(pf); pccard_function_free(pf); + devi = PCCARD_IVAR(pf->dev); device_delete_child(dev, pf->dev); + free(devi, M_DEVBUF); } if (sc->sc_enabled_count == 0) POWER_DISABLE_SOCKET(device_get_parent(dev), dev); |