[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 50/56] hw/block/nvme: error if drive less than a zone size
From: |
Klaus Jensen |
Subject: |
[PULL 50/56] hw/block/nvme: error if drive less than a zone size |
Date: |
Tue, 9 Feb 2021 08:30:55 +0100 |
From: Minwoo Im <minwoo.im.dev@gmail.com>
If a user assigns a backing device with less capacity than the size of a
single zone, the namespace capacity will be reported as zero and the
kernel will silently fail to allocate the namespace.
This patch errors out in case that the backing device cannot accomodate
at least a single zone.
Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com>
[k.jensen: small fixup in the error and commit message]
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
hw/block/nvme-ns.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c
index 3f52acb89c95..dfed71a950fa 100644
--- a/hw/block/nvme-ns.c
+++ b/hw/block/nvme-ns.c
@@ -134,6 +134,13 @@ static int nvme_ns_zoned_check_calc_geometry(NvmeNamespace
*ns, Error **errp)
ns->num_zones = ns->size / lbasz / ns->zone_size;
/* Do a few more sanity checks of ZNS properties */
+ if (!ns->num_zones) {
+ error_setg(errp,
+ "insufficient drive capacity, must be at least the size "
+ "of one zone (%"PRIu64"B)", zone_size);
+ return -1;
+ }
+
if (ns->params.max_open_zones > ns->num_zones) {
error_setg(errp,
"max_open_zones value %u exceeds the number of zones %u",
--
2.30.0
- [PULL 40/56] hw/block/nvme: indicate CMB support through controller capabilities register, (continued)
- [PULL 40/56] hw/block/nvme: indicate CMB support through controller capabilities register, Klaus Jensen, 2021/02/09
- [PULL 41/56] hw/block/nvme: move msix table and pba to BAR 0, Klaus Jensen, 2021/02/09
- [PULL 29/56] hw/block/nvme: remove unused argument in nvme_ns_init_zoned, Klaus Jensen, 2021/02/09
- [PULL 48/56] hw/block/nvme: bump to v1.4, Klaus Jensen, 2021/02/09
- [PULL 33/56] hw/block/nvme: remove unused argument in nvme_ns_setup, Klaus Jensen, 2021/02/09
- [PULL 38/56] hw/block/nvme: add size to mmio read/write trace events, Klaus Jensen, 2021/02/09
- [PULL 32/56] hw/block/nvme: split setup and register for namespace, Klaus Jensen, 2021/02/09
- [PULL 35/56] nvme: introduce bit 5 for critical warning, Klaus Jensen, 2021/02/09
- [PULL 42/56] hw/block/nvme: allow cmb and pmr to coexist, Klaus Jensen, 2021/02/09
- [PULL 46/56] hw/block/nvme: add PMR RDS/WDS support, Klaus Jensen, 2021/02/09
- [PULL 50/56] hw/block/nvme: error if drive less than a zone size,
Klaus Jensen <=
- [PULL 37/56] hw/block/nvme: trigger async event during injecting smart warning, Klaus Jensen, 2021/02/09
- [PULL 47/56] hw/block/nvme: move cmb logic to v1.4, Klaus Jensen, 2021/02/09
- [PULL 54/56] hw/block/nvme: fix wrong parameter name 'cross_read', Klaus Jensen, 2021/02/09
- [PULL 56/56] hw/block/nvme: refactor the logic for zone write checks, Klaus Jensen, 2021/02/09
- [PULL 43/56] hw/block/nvme: rename PMR/CMB shift/mask fields, Klaus Jensen, 2021/02/09
- [PULL 36/56] hw/block/nvme: add smart_critical_warning property, Klaus Jensen, 2021/02/09
- [PULL 34/56] hw/block/nvme: fix zone write finalize, Klaus Jensen, 2021/02/09
- [PULL 51/56] hw/block/nvme: fix set feature for error recovery, Klaus Jensen, 2021/02/09
- [PULL 44/56] hw/block/nvme: remove redundant zeroing of PMR registers, Klaus Jensen, 2021/02/09
- [PULL 49/56] hw/block/nvme: lift cmb restrictions, Klaus Jensen, 2021/02/09