summaryrefslogtreecommitdiffstats
path: root/sys/dev/pccard
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2007-02-03 07:09:36 +0000
committerimp <imp@FreeBSD.org>2007-02-03 07:09:36 +0000
commit39fa690f180aa6cc00a4d132951ba4e306cd2e23 (patch)
treec9b687ce857d32227b34e6546ae8cfe6a4c407fc /sys/dev/pccard
parent929d8d99d7b7d6c9b712e7a69050dedd2c18e286 (diff)
downloadFreeBSD-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.c3
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);
OpenPOWER on IntegriCloud