Static analysis reported that the default cases in the switch statements handling dtype and doper in nvme_directive_receive() are unreachable.
The values of dtype and doper are already validated earlier in the function, making the default branches redundant. Remove the unreachable cases to simplify the control flow. Reported-by: Ekaterina Zilotina Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2472 Signed-off-by: Han Zhang <[email protected]> --- hw/nvme/ctrl.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index cc4593cd42..36df6eeca2 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -7550,25 +7550,13 @@ static uint16_t nvme_directive_receive(NvmeCtrl *n, NvmeRequest *req) return NVME_INVALID_FIELD | NVME_DNR; } - switch (dtype) { - case NVME_DIRECTIVE_IDENTIFY: - switch (doper) { - case NVME_DIRECTIVE_RETURN_PARAMS: - if (ns->endgrp && ns->endgrp->fdp.enabled) { - id.supported |= 1 << NVME_DIRECTIVE_DATA_PLACEMENT; - id.enabled |= 1 << NVME_DIRECTIVE_DATA_PLACEMENT; - id.persistent |= 1 << NVME_DIRECTIVE_DATA_PLACEMENT; - } - - return nvme_c2h(n, (uint8_t *)&id, trans_len, req); - - default: - return NVME_INVALID_FIELD | NVME_DNR; - } - - default: - return NVME_INVALID_FIELD; + if (ns->endgrp && ns->endgrp->fdp.enabled) { + id.supported |= 1 << NVME_DIRECTIVE_DATA_PLACEMENT; + id.enabled |= 1 << NVME_DIRECTIVE_DATA_PLACEMENT; + id.persistent |= 1 << NVME_DIRECTIVE_DATA_PLACEMENT; } + + return nvme_c2h(n, (uint8_t *)&id, trans_len, req); } static uint16_t nvme_admin_cmd(NvmeCtrl *n, NvmeRequest *req) -- 2.34.1
