From a71e30dee82a09d18a25b50b44d3d67e1c3b8489 Mon Sep 17 00:00:00 2001 From: Jacek Kalwas Date: Thu, 9 Jan 2020 14:30:55 +0100 Subject: [PATCH] nvmf/ctrlr: improve property set cc checking AMS, MPS, CSS fields are explicitly checked now. Signed-off-by: Jacek Kalwas Change-Id: Ib3872b53fc49f1320aa30c73eac026d1acb9eace Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/479836 Reviewed-by: Paul Luse Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins Community-CI: Broadcom SPDK FC-NVMe CI Community-CI: SPDK CI Jenkins --- lib/nvmf/ctrlr.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/nvmf/ctrlr.c b/lib/nvmf/ctrlr.c index 43012f0b0..f546a2e03 100644 --- a/lib/nvmf/ctrlr.c +++ b/lib/nvmf/ctrlr.c @@ -699,6 +699,21 @@ nvmf_prop_set_cc(struct spdk_nvmf_ctrlr *ctrlr, uint64_t value) diff.bits.iocqes = 0; } + if (diff.bits.ams) { + SPDK_ERRLOG("Arbitration Mechanism Selected (AMS) 0x%x not supported!\n", cc.bits.ams); + return false; + } + + if (diff.bits.mps) { + SPDK_ERRLOG("Memory Page Size (MPS) %u KiB not supported!\n", (1 << (2 + cc.bits.mps))); + return false; + } + + if (diff.bits.css) { + SPDK_ERRLOG("I/O Command Set Selected (CSS) 0x%x not supported!\n", cc.bits.css); + return false; + } + if (diff.raw != 0) { SPDK_ERRLOG("Prop Set CC toggled reserved bits 0x%x!\n", diff.raw); return false;