Module Name: src Committed By: mlelstv Date: Tue Oct 1 10:59:50 UTC 2019
Modified Files: src/sys/dev/ic: ld_nvme.c Log Message: Don't attach an ld device if the format descriptor is unsupported/unused. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/dev/ic/ld_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/ld_nvme.c diff -u src/sys/dev/ic/ld_nvme.c:1.22 src/sys/dev/ic/ld_nvme.c:1.23 --- src/sys/dev/ic/ld_nvme.c:1.22 Fri Apr 26 14:28:40 2019 +++ src/sys/dev/ic/ld_nvme.c Tue Oct 1 10:59:49 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ld_nvme.c,v 1.22 2019/04/26 14:28:40 mlelstv Exp $ */ +/* $NetBSD: ld_nvme.c,v 1.23 2019/10/01 10:59:49 mlelstv Exp $ */ /*- * Copyright (C) 2016 NONAKA Kimihiro <non...@netbsd.org> @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ld_nvme.c,v 1.22 2019/04/26 14:28:40 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ld_nvme.c,v 1.23 2019/10/01 10:59:49 mlelstv Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -105,6 +105,19 @@ ld_nvme_attach(device_t parent, device_t KASSERT(ns); f = &ns->ident->lbaf[NVME_ID_NS_FLBAS(ns->ident->flbas)]; + /* + * NVME1.0e 6.11 Identify command + * + * LBADS values smaller than 9 are not supported, a value + * of zero means that the format is not used. + */ + if (f->lbads < 9) { + if (f->lbads > 0) + aprint_error_dev(self, + "unsupported logical data size %u\n", f->lbads); + return; + } + ld->sc_secsize = 1 << f->lbads; ld->sc_secperunit = ns->ident->nsze; ld->sc_maxxfer = naa->naa_maxphys;