Do not manually allocate/free device's softc structure.

Pointed by:	jhb
Reviewed by:	imp, jhb
This commit is contained in:
emax 2005-10-26 23:13:51 +00:00
parent 7adfb1b91d
commit 07a4207441

View File

@ -612,11 +612,7 @@ bt3c_pccard_probe(device_t dev)
static int
bt3c_pccard_attach(device_t dev)
{
bt3c_softc_p sc = NULL;
sc = (bt3c_softc_p) malloc(sizeof(*sc), M_BT3C, M_NOWAIT|M_ZERO);
if (sc == NULL)
return (ENOMEM);
bt3c_softc_p sc = (bt3c_softc_p) device_get_softc(dev);
/* Allocate I/O ports */
sc->iobase_rid = 0;
@ -677,7 +673,6 @@ bt3c_pccard_attach(device_t dev)
sc->want = 1;
NG_NODE_SET_PRIVATE(sc->node, sc);
device_set_softc(dev, sc);
return (0);
bad:
@ -705,8 +700,6 @@ bad:
sc->iobase_rid = 0;
}
free(sc, M_BT3C);
return (ENXIO);
} /* bt3c_pccacd_attach */
@ -722,8 +715,6 @@ bt3c_pccard_detach(device_t dev)
if (sc == NULL)
return (0);
device_set_softc(dev, NULL);
swi_remove(sc->ith);
sc->ith = NULL;
@ -750,9 +741,6 @@ bt3c_pccard_detach(device_t dev)
mtx_destroy(&sc->inq.ifq_mtx);
mtx_destroy(&sc->outq.ifq_mtx);
bzero(sc, sizeof(*sc));
free(sc, M_BT3C);
return (0);
} /* bt3c_pccacd_detach */
@ -1197,7 +1185,7 @@ static device_method_t bt3c_pccard_methods[] = {
static driver_t bt3c_pccard_driver = {
NG_BT3C_NODE_TYPE,
bt3c_pccard_methods,
0
sizeof(bt3c_softc_t)
};
static devclass_t bt3c_devclass;