Module Name: src Committed By: bouyer Date: Mon Apr 9 13:23:29 UTC 2018
Modified Files: src/sys/dev/ic [netbsd-8]: nvme.c Log Message: Pull up following revision(s) (requested by msaitoh in ticket #718): sys/dev/ic/nvme.c: revision 1.32 - don't leak ccb on alloc failure. - KASSERT to prevent memory leak. To generate a diff of this commit: cvs rdiff -u -r1.30.2.2 -r1.30.2.3 src/sys/dev/ic/nvme.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/ic/nvme.c diff -u src/sys/dev/ic/nvme.c:1.30.2.2 src/sys/dev/ic/nvme.c:1.30.2.3 --- src/sys/dev/ic/nvme.c:1.30.2.2 Sun Mar 18 11:05:27 2018 +++ src/sys/dev/ic/nvme.c Mon Apr 9 13:23:29 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nvme.c,v 1.30.2.2 2018/03/18 11:05:27 martin Exp $ */ +/* $NetBSD: nvme.c,v 1.30.2.3 2018/04/09 13:23:29 bouyer Exp $ */ /* $OpenBSD: nvme.c,v 1.49 2016/04/18 05:59:50 dlg Exp $ */ /* @@ -18,7 +18,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nvme.c,v 1.30.2.2 2018/03/18 11:05:27 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nvme.c,v 1.30.2.3 2018/04/09 13:23:29 bouyer Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -570,8 +570,10 @@ nvme_ns_identify(struct nvme_softc *sc, KASSERT(ccb != NULL); /* it's a bug if we don't have spare ccb here */ mem = nvme_dmamem_alloc(sc, sizeof(*identify)); - if (mem == NULL) + if (mem == NULL) { + nvme_ccb_put(sc->sc_admin_q, ccb); return ENOMEM; + } memset(&sqe, 0, sizeof(sqe)); sqe.opcode = NVM_ADMIN_IDENTIFY; @@ -601,6 +603,7 @@ nvme_ns_identify(struct nvme_softc *sc, ns = nvme_ns_get(sc, nsid); KASSERT(ns); + KASSERT(ns->ident == NULL); ns->ident = identify; done: