Messages in this thread Patch in this message | | | From | Wu Bo <> | Subject | [PATCH V2] nvme/core:disable streams when get stream params failed | Date | Wed, 13 May 2020 16:05:32 +0800 |
| |
After enable nvme streams, then if get stream params failed, We should disable streams before return error in nvme_configure_directives() function.
Signed-off-by: Wu Bo <wubo40@huawei.com> --- drivers/nvme/host/core.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index f3c037f..298e60c 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -552,20 +552,24 @@ static int nvme_configure_directives(struct nvme_ctrl *ctrl) return ret; ret = nvme_get_stream_params(ctrl, &s, NVME_NSID_ALL); - if (ret) - return ret; + if (ret) { + goto out_disable_stream; + } ctrl->nssa = le16_to_cpu(s.nssa); if (ctrl->nssa < BLK_MAX_WRITE_HINTS - 1) { dev_info(ctrl->device, "too few streams (%u) available\n", ctrl->nssa); - nvme_disable_streams(ctrl); - return 0; + goto out_disable_stream; } ctrl->nr_streams = min_t(unsigned, ctrl->nssa, BLK_MAX_WRITE_HINTS - 1); dev_info(ctrl->device, "Using %u streams\n", ctrl->nr_streams); return 0; + +out_disable_stream: + nvme_disable_streams(ctrl); + return ret; } /* -- 1.8.3.1
| |