diff options
| author | Scott Long <scottl@FreeBSD.org> | 2006-03-28 01:59:11 +0000 |
|---|---|---|
| committer | Scott Long <scottl@FreeBSD.org> | 2006-03-28 01:59:11 +0000 |
| commit | 20df0de426fb7f044eefab742a918a3b29c6a87c (patch) | |
| tree | c865fcd6e6867a07613b7e8410bcc7bdbe3962aa /sys/dev/mfi | |
| parent | d7eda4625339399198f44a30a72f0500b1a49ee3 (diff) | |
Notes
Diffstat (limited to 'sys/dev/mfi')
| -rw-r--r-- | sys/dev/mfi/mfi.c | 7 | ||||
| -rw-r--r-- | sys/dev/mfi/mfi_disk.c | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/mfi/mfi.c b/sys/dev/mfi/mfi.c index 8efc0c011b05..064252ea8be2 100644 --- a/sys/dev/mfi/mfi.c +++ b/sys/dev/mfi/mfi.c @@ -911,6 +911,12 @@ mfi_add_ld(struct mfi_softc *sc, int id, uint64_t sectors, uint32_t secsize) struct mfi_ld *ld; device_t child; + if ((secsize == 0) || (sectors == 0)) { + device_printf(sc->mfi_dev, "Invalid capacity parameters for " + "logical disk %d\n", id); + return (EINVAL); + } + ld = malloc(sizeof(struct mfi_ld), M_MFIBUF, M_NOWAIT|M_ZERO); if (ld == NULL) { device_printf(sc->mfi_dev, "Cannot allocate ld\n"); @@ -929,7 +935,6 @@ mfi_add_ld(struct mfi_softc *sc, int id, uint64_t sectors, uint32_t secsize) device_set_ivars(child, ld); device_set_desc(child, "MFI Logical Disk"); - TAILQ_INSERT_TAIL(&sc->mfi_ld_tqh, ld, ld_link); mtx_unlock(&sc->mfi_io_lock); mtx_lock(&Giant); bus_generic_attach(sc->mfi_dev); diff --git a/sys/dev/mfi/mfi_disk.c b/sys/dev/mfi/mfi_disk.c index 03b04592c76b..dbba70450e3f 100644 --- a/sys/dev/mfi/mfi_disk.c +++ b/sys/dev/mfi/mfi_disk.c @@ -119,6 +119,7 @@ mfi_disk_attach(device_t dev) free(sc->ld_ld, M_MFIBUF); return (EINVAL); } + TAILQ_INSERT_TAIL(&sc->ld_controller->mfi_ld_tqh, ld, ld_link); device_printf(dev, "%juMB (%ju sectors) RAID\n", sectors / (1024 * 1024 / secsize), sectors); |
