summaryrefslogtreecommitdiffstats
path: root/sys/dev/txp
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2007-06-12 04:30:30 +0000
committeryongari <yongari@FreeBSD.org>2007-06-12 04:30:30 +0000
commit2eb43cb958c78a7a9ef7d0a4df488dda3641d669 (patch)
tree491381bb40cee966100c1004b3ae647b1872a3fa /sys/dev/txp
parent2255e968f3f73eab68839682b286d05b97ac4941 (diff)
downloadFreeBSD-src-2eb43cb958c78a7a9ef7d0a4df488dda3641d669.zip
FreeBSD-src-2eb43cb958c78a7a9ef7d0a4df488dda3641d669.tar.gz
Add checks for contigmalloc(9) failure.
Diffstat (limited to 'sys/dev/txp')
-rw-r--r--sys/dev/txp/if_txp.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/txp/if_txp.c b/sys/dev/txp/if_txp.c
index 521a49c..aff8461 100644
--- a/sys/dev/txp/if_txp.c
+++ b/sys/dev/txp/if_txp.c
@@ -264,6 +264,11 @@ txp_attach(dev)
sc->sc_fwbuf = contigmalloc(32768, M_DEVBUF,
M_NOWAIT, 0, 0xffffffff, PAGE_SIZE, 0);
+ if (sc->sc_fwbuf == NULL) {
+ device_printf(dev, "no memory for firmware\n");
+ error = ENXIO;
+ goto fail;
+ }
error = txp_download_fw(sc);
contigfree(sc->sc_fwbuf, 32768, M_DEVBUF);
sc->sc_fwbuf = NULL;
@@ -273,6 +278,11 @@ txp_attach(dev)
sc->sc_ldata = contigmalloc(sizeof(struct txp_ldata), M_DEVBUF,
M_NOWAIT, 0, 0xffffffff, PAGE_SIZE, 0);
+ if (sc->sc_ldata == NULL) {
+ device_printf(dev, "no memory for descriptor ring\n");
+ error = ENXIO;
+ goto fail;
+ }
bzero(sc->sc_ldata, sizeof(struct txp_ldata));
if (txp_alloc_rings(sc)) {
OpenPOWER on IntegriCloud