From: Tao Cui <cui.tao@linux.dev>
To: bvanassche@acm.org, axboe@kernel.dk
Cc: hch@lst.de, linux-block@vger.kernel.org,
linux-kernel@vger.kernel.org, cui.tao@linux.dev,
Tao Cui <cuitao@kylinos.cn>
Subject: [PATCH v2 2/3] loop: replace simple_strtol() with kstrtoint()
Date: Mon, 31 Aug 2026 18:03:04 +0800 [thread overview]
Message-ID: <20260831100305.695116-3-cui.tao@linux.dev> (raw)
In-Reply-To: <20260831100305.695116-1-cui.tao@linux.dev>
From: Tao Cui <cuitao@kylinos.cn>
simple_strtol() is deprecated and swallows errors. Use kstrtoint()
in the max_loop setup code; an invalid option keeps the default and
now says so.
Only mark max_loop_specified when the option was parsed successfully.
With simple_strtol() a garbage string yields max_loop = 0, and
loop_probe()'s "max_loop_specified && max_loop" check short-circuits
on 0, so legacy autoloading is not capped. Keeping max_loop at its
default while still setting max_loop_specified would instead turn the
default into a hard upper bound for dynamic device creation. This
mirrors what max_loop_param_set_int() already does for the module
parameter.
Signed-off-by: Tao Cui <cuitao@kylinos.cn>
---
Changes in v2:
- move max_loop_specified = true under the success path, pointed out
by an AI-assisted review of v1.
---
drivers/block/loop.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 68a9cc7aeb13..126f42580632 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -2341,7 +2341,10 @@ module_exit(loop_exit);
#ifndef MODULE
static int __init max_loop_setup(char *str)
{
- max_loop = simple_strtol(str, NULL, 0);
+ if (kstrtoint(str, 0, &max_loop)) {
+ pr_warn("loop: invalid max_loop, keeping default\n");
+ return 1;
+ }
#ifdef CONFIG_BLOCK_LEGACY_AUTOLOAD
max_loop_specified = true;
#endif
--
2.43.0
next prev parent reply other threads:[~2026-08-31 10:03 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-31 10:03 [PATCH 0/3] loop: three small cleanups Tao Cui
2026-08-31 10:03 ` [PATCH v2 1/3] loop: drop a stale reference to loop_validate_size() Tao Cui
2026-09-02 13:59 ` Christoph Hellwig
2026-08-31 10:03 ` Tao Cui [this message]
2026-08-31 10:07 ` [PATCH v2 2/3] loop: replace simple_strtol() with kstrtoint() Tao Cui
2026-08-31 10:03 ` [PATCH v2 3/3] loop: drop the unused argument of lo_req_flush() Tao Cui
2026-09-02 14:00 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260831100305.695116-3-cui.tao@linux.dev \
--to=cui.tao@linux.dev \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=cuitao@kylinos.cn \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.