From 8ccfb0607f25da604df218933db02276055ed410 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Sat, 3 Feb 2007 07:09:36 +0000 Subject: [PATCH] We need to free the ivars for the child that we just deleted. --- sys/dev/pccard/pccard.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/dev/pccard/pccard.c b/sys/dev/pccard/pccard.c index 260909a16ec..45600ba4aab 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);