2020-05-06 08:25:09

by Wu Bo

[permalink] [raw]
Subject: [PATCH] nvme/core:disable streams when get stream params failed

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 <[email protected]>
---
drivers/nvme/host/core.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index f2adea9..afe1f5a 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -552,8 +552,10 @@ static int nvme_configure_directives(struct nvme_ctrl *ctrl)
return ret;

ret = nvme_get_stream_params(ctrl, &s, NVME_NSID_ALL);
- if (ret)
+ if (ret) {
+ nvme_disable_streams(ctrl);
return ret;
+ }

ctrl->nssa = le16_to_cpu(s.nssa);
if (ctrl->nssa < BLK_MAX_WRITE_HINTS - 1) {
--
1.8.3.1


2020-05-12 16:10:29

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] nvme/core:disable streams when get stream params failed

On Wed, May 06, 2020 at 04:37:01PM +0800, Wu Bo wrote:
> 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 <[email protected]>
> ---
> drivers/nvme/host/core.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index f2adea9..afe1f5a 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -552,8 +552,10 @@ static int nvme_configure_directives(struct nvme_ctrl *ctrl)
> return ret;
>
> ret = nvme_get_stream_params(ctrl, &s, NVME_NSID_ALL);
> - if (ret)
> + if (ret) {
> + nvme_disable_streams(ctrl);
> return ret;
> + }

Please use a out_disable goto label to not duplicate the error
handling with the other case that needs it.

2020-05-13 06:14:52

by Wu Bo

[permalink] [raw]
Subject: Re: [PATCH] nvme/core:disable streams when get stream params failed

On 2020/5/13 0:06, Christoph Hellwig wrote:
> On Wed, May 06, 2020 at 04:37:01PM +0800, Wu Bo wrote:
>> 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 <[email protected]>
>> ---
>> drivers/nvme/host/core.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
>> index f2adea9..afe1f5a 100644
>> --- a/drivers/nvme/host/core.c
>> +++ b/drivers/nvme/host/core.c
>> @@ -552,8 +552,10 @@ static int nvme_configure_directives(struct nvme_ctrl *ctrl)
>> return ret;
>>
>> ret = nvme_get_stream_params(ctrl, &s, NVME_NSID_ALL);
>> - if (ret)
>> + if (ret) {
>> + nvme_disable_streams(ctrl);
>> return ret;
>> + }
>
> Please use a out_disable goto label to not duplicate the error
> handling with the other case that needs it.
>

OK, I will modify it in the V2 patch.

Thanks,
Wu Bo

> .
>