[PATCH v3] checkpatch: mention fsleep() in MSLEEP and USLEEP_RANGE warnings

From: Neel Bullywon

Date: Wed Feb 25 2026 - 10:25:50 EST


Expand the USLEEP_RANGE check to recommend fsleep() as the preferred
option over both usleep_range() and udelay(), and expand the MSLEEP
warning to suggest considering fsleep() for short msleep calls.
fsleep() autoselects the best sleep mechanism based on duration,
making it the preferred choice for sleep operations.

Signed-off-by: Neel Bullywon <neelb2403@xxxxxxxxx>
---
v3:
- USLEEP_RANGE: reword to recommend fsleep() as preferred over others
(Andy Shevchenko)
- MSLEEP: add "consider using fsleep()" (Andy Shevchenko)
v2:
- Reworded to keep usleep_range as primary suggestion and add fsleep()
as additional reference (Joe Perches)

scripts/checkpatch.pl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index c0250244cf7a..fc08c780610a 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -6624,7 +6624,7 @@ sub process {
# ignore udelay's < 10, however
if (! ($delay < 10) ) {
CHK("USLEEP_RANGE",
- "usleep_range is preferred over udelay; see function description of usleep_range() and udelay().\n" . $herecurr);
+ "fsleep() is preferred over others; usleep_range() is preferred over udelay(); see function descriptions of usleep_range(), udelay(), and fsleep().\n" . $herecurr);
}
if ($delay > 2000) {
WARN("LONG_UDELAY",
@@ -6636,7 +6636,7 @@ sub process {
if ($line =~ /\bmsleep\s*\((\d+)\);/) {
if ($1 < 20) {
WARN("MSLEEP",
- "msleep < 20ms can sleep for up to 20ms; see function description of msleep().\n" . $herecurr);
+ "msleep < 20ms can sleep for up to 20ms; consider using fsleep(); see function description of msleep() and fsleep().\n" . $herecurr);
}
}

--
2.44.0