Index: usr.sbin/bhyve/pci_nvme.c =================================================================== --- usr.sbin/bhyve/pci_nvme.c +++ usr.sbin/bhyve/pci_nvme.c @@ -242,7 +242,6 @@ struct nvme_completion *); struct nvme_feature_obj { - uint32_t cdw11; nvme_feature_cb set; nvme_feature_cb get; bool namespace_specific; @@ -1401,13 +1400,14 @@ } compl->cdw0 = 0; - pci_nvme_status_genc(&compl->status, NVME_SC_SUCCESS); - if (feat->set) + if (feat->set) { feat->set(sc, feat, command, compl); - - if (compl->status == NVME_SC_SUCCESS) - feat->cdw11 = command->cdw11; + } else { + pci_nvme_status_tc(&compl->status, NVME_SCT_COMMAND_SPECIFIC, + NVME_SC_FEATURE_NOT_CHANGEABLE); + return (1); + } return (0); } @@ -1435,10 +1435,6 @@ feat->get(sc, feat, command, compl); } - if (compl->status == NVME_SC_SUCCESS) { - compl->cdw0 = feat->cdw11; - } - return (0); }