[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <65604aae-b722-4caf-3373-d0f1e4492faa@huawei.com>
Date: Wed, 30 Nov 2022 11:31:32 +0800
From: wangyufen <wangyufen@...wei.com>
To: Bart Van Assche <bvanassche@....org>, <jgg@...pe.ca>,
<leon@...nel.org>, <dennis.dalessandro@...nelisnetworks.com>
CC: <linux-rdma@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<andriy.shevchenko@...ux.intel.com>, <bart.vanassche@....com>,
<easwar.hariharan@...el.com>
Subject: Re: [PATCH v4 2/2] RDMA/srp: Fix error return code in
srp_parse_options()
I'm so sorry for the poor patch description. Is the following
description OK?
In the previous iteration of the while loop, "ret" may have been
assigned a value of 0, so the error return code -EINVAL may have been
incorrectly set to 0.
Also, investigate each case separately as Andy suggessted. If the help
function match_int() fails, the error code is returned, which is
different from the warning information printed before. If the parsing
result token is incorrect, "-EINVAL" is returned and the original
warning information is printed.
Thanks.
在 2022/11/30 2:43, Bart Van Assche 写道:
> On 11/28/22 18:04, Wang Yufen wrote:
>> In the previous while loop, "ret" may be assigned zero, , so the error
>
> The word "iteration" is missing from the above sentence. Additionally,
> there is a double comma.
>
>> return code may be incorrectly set to 0 instead of -EINVAL. Alse
>
> Alse -> Also
>
>> case SRP_OPT_QUEUE_SIZE:
>> - if (match_int(args, &token) || token < 1) {
>> + ret = match_int(args, &token);
>> + if (ret)
>> + goto out;
>> + if (token < 1) {
>> pr_warn("bad queue_size parameter '%s'\n", p);
>> + ret = -EINVAL;
>> goto out;
>> }
>> target->scsi_host->can_queue = token;
>
> Why only to report "bad queue_size parameter" if ret == 0 && token < 1
> but not if ret < 0? This is a behavior change that has not been
> explained in the patch description.
>
>> @@ -3490,25 +3496,34 @@ static int srp_parse_options(struct net *net,
>> const char *buf,
>> break;
>> case SRP_OPT_MAX_CMD_PER_LUN:
>> - if (match_int(args, &token) || token < 1) {
>> + ret = match_int(args, &token);
>> + if (ret)
>> + goto out;
>> + if (token < 1) {
>> pr_warn("bad max cmd_per_lun parameter '%s'\n",
>> p);
>> + ret = -EINVAL;
>> goto out;
>> }
>> target->scsi_host->cmd_per_lun = token;
>> break;
>
> Same comment here and for many other changes below.
>
> Thanks,
>
> Bart.
>
>
Powered by blists - more mailing lists