From 8a2395d0e66f066b6281243c77d6ef8060e89aa2 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Mon, 18 Jul 2016 08:54:45 -0700 Subject: [PATCH] nvmf: update CSTS when host writes CC.SHN Set CSTS.SHST = 10b to indicate that shutdown is complete, and CSTS.RDY = 0 to match the state of CC.EN. Change-Id: Ia651c34427526a38f22cba3910df2cf7d4bedd92 Signed-off-by: Daniel Verkamp --- lib/nvmf/session.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/nvmf/session.c b/lib/nvmf/session.c index 3dd91526f..215e4f64e 100644 --- a/lib/nvmf/session.c +++ b/lib/nvmf/session.c @@ -328,9 +328,13 @@ nvmf_prop_set_cc(struct nvmf_session *session, uint64_t value) session->vcprop.csts.bits.rdy = 1; } - if (cc.bits.shn && !session->vcprop.cc.bits.shn) { - SPDK_TRACELOG(SPDK_TRACE_NVMF, "Property Set CC Shutdown!\n"); + if (cc.bits.shn == SPDK_NVME_SHN_NORMAL || + cc.bits.shn == SPDK_NVME_SHN_ABRUPT) { + SPDK_TRACELOG(SPDK_TRACE_NVMF, "Property Set CC Shutdown %u%ub!\n", + cc.bits.shn >> 1, cc.bits.shn & 1); session->vcprop.cc.bits.en = 0; + session->vcprop.csts.bits.rdy = 0; + session->vcprop.csts.bits.shst = SPDK_NVME_SHST_COMPLETE; } session->vcprop.cc.raw = cc.raw;