Index: mfi.c =================================================================== RCS file: /usr/repo/src/sys/dev/mfi/mfi.c,v retrieving revision 1.3 diff -u -p -r1.3 mfi.c --- mfi.c 28 Mar 2006 23:59:07 -0000 1.3 +++ mfi.c 4 Apr 2006 22:00:15 -0000 @@ -715,6 +715,7 @@ mfi_ldprobe_inq(struct mfi_softc *sc) break; cm = mfi_dequeue_free(sc); if (cm == NULL) { + free(inq, M_MFIBUF); tsleep(mfi_startup, 0, "mfistart", 5 * hz); i--; continue; @@ -840,8 +841,10 @@ mfi_ldprobe_capacity(struct mfi_softc *s if (cap == NULL) return (ENOMEM); cm = mfi_dequeue_free(sc); - if (cm == NULL) + if (cm == NULL) { + free(cap, M_MFIBUF); return (EBUSY); + } pass = &cm->cm_frame->pass; pass->header.cmd = MFI_CMD_LD_SCSI_IO; pass->header.target_id = id; @@ -924,6 +927,7 @@ mfi_add_ld(struct mfi_softc *sc, int id, } if ((child = device_add_child(sc->mfi_dev, "mfid", -1)) == NULL) { + free(ld, M_MFIBUF); device_printf(sc->mfi_dev, "Failed to add logical disk\n"); return (EINVAL); }