On Fri, Nov 25, 2022 at 08:03:51PM +0800, Wang Yufen wrote: > In the previous while loop, "ret" may be assigned zero. Therefore, > "ret" needs to be assigned -EINVAL at the beginning of each loop. ... > while ((p = strsep(&sep_opt, ",\n")) != NULL) { > + ret = -EINVAL; > if (!*p) > continue; Better option is to investigate each case separately and gather all of them into a single fix. For example, this case SRP_OPT_MAX_IT_IU_SIZE: if (match_int(args, &token) || token < 0) { pr_warn("bad maximum initiator to target IU size '%s'\n", p); goto out; } target->max_it_iu_size = token; break; can be rewritten as case SRP_OPT_MAX_IT_IU_SIZE: ret = match_int(args, &token); if (ret) goto out; if (token < 0) { pr_warn("bad maximum initiator to target IU size '%s'\n", p); ret = -EINVAL; goto out; } target->max_it_iu_size = token; break; and so on... -- With Best Regards, Andy Shevchenko