diff options
| author | augustss <augustss@NetBSD.org> | 2001-12-06 20:00:58 +0000 |
|---|---|---|
| committer | augustss <augustss@NetBSD.org> | 2001-12-06 20:00:58 +0000 |
| commit | ba528e6decc5dff6313356459faa867accbc8d09 (patch) | |
| tree | fba5f359350e2969cf1abd8c33e1a47e9d3c9fe1 /sys/dev/ic | |
| parent | 94074f1212dc7acfcb75bfa7fafcddfa1a9b3031 (diff) | |
Small change to Christos' fix: allow malloc() to return NULL, but complain
if it does.
Diffstat (limited to 'sys/dev/ic')
| -rw-r--r-- | sys/dev/ic/pckbc.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/dev/ic/pckbc.c b/sys/dev/ic/pckbc.c index ed41f099982..8ddd1fb2e14 100644 --- a/sys/dev/ic/pckbc.c +++ b/sys/dev/ic/pckbc.c @@ -1,4 +1,4 @@ -/* $NetBSD: pckbc.c,v 1.18 2001/12/06 19:54:02 christos Exp $ */ +/* $NetBSD: pckbc.c,v 1.19 2001/12/06 20:00:58 augustss Exp $ */ /* * Copyright (c) 1998 @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pckbc.c,v 1.18 2001/12/06 19:54:02 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pckbc.c,v 1.19 2001/12/06 20:00:58 augustss Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -302,6 +302,7 @@ pckbc_attach_slot(sc, slot) { struct pckbc_internal *t = sc->id; struct pckbc_attach_args pa; + void *sdata; int found; int alloced = 0; @@ -309,8 +310,13 @@ pckbc_attach_slot(sc, slot) pa.pa_slot = slot; if (t->t_slotdata[slot] == NULL) { - t->t_slotdata[slot] = malloc(sizeof(struct pckbc_slotdata), - M_DEVBUF, M_WAITOK); + sdata = malloc(sizeof(struct pckbc_slotdata), + M_DEVBUF, M_NOWAIT); + if (sdata == NULL) { + printf("%s: no memory\n", sc->sc_dv.dv_xname); + return (0); + } + t->t_slotdata[slot] = sdata; pckbc_init_slotdata(t->t_slotdata[slot]); alloced++; } |
