On Sat, Nov 26, 2022 at 09:50:54PM +0800, Wang Yufen wrote: > In the previous while loop, "ret" may be assigned zero, , so the error > return code may be incorrectly set to 0 instead of -EINVAL. > Add out_with_einval goto label and covert all "goto out;" to "goto > out_with_einval:" where it's appropriate, alse investigate each case > separately as Andy suggessted. > > Fixes: e711f968c49c ("IB/srp: replace custom implementation of hex2bin()") > Fixes: 2a174df0c602 ("IB/srp: Use kstrtoull() instead of simple_strtoull()") > Fixes: 19f313438c77 ("IB/srp: Add RDMA/CM support") > Signed-off-by: Wang Yufen <wangyufen@xxxxxxxxxx> > --- > drivers/infiniband/ulp/srp/ib_srp.c | 86 ++++++++++++++++++++++++++----------- > 1 file changed, 60 insertions(+), 26 deletions(-) <...> > @@ -3623,6 +3653,10 @@ static int srp_parse_options(struct net *net, const char *buf, > out: > kfree(options); > return ret; > + > +out_with_einval: It needs to be changed back. Thanks > + ret = -EINVAL; > + goto out; > } > > static ssize_t add_target_store(struct device *dev, > -- > 1.8.3.1 >