summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorColy Li <colyli@kernel.org>2025-03-09 12:05:56 -0400
committerJens Axboe <axboe@kernel.dk>2025-03-10 07:41:58 -0600
commit7e76336e14de9a2b67af96012ddd46c5676cf340 (patch)
treeab197e8a5e2b5e75f1c01ae3e4fbbb2a826c3db6 /block
parentfc0e982b8a3a169b1c654d9a1aa45bf292943ef2 (diff)
badblocks: Fix a nonsense WARN_ON() which checks whether a u64 variable < 0
In _badblocks_check(), there are lines of code like this, 1246 sectors -= len; [snipped] 1251 WARN_ON(sectors < 0); The WARN_ON() at line 1257 doesn't make sense because sectors is unsigned long long type and never to be <0. Fix it by checking directly checking whether sectors is less than len. Reported-by: Dan Carpenter <dan.carpenter@linaro.org> Signed-off-by: Coly Li <colyli@kernel.org> Reviewed-by: Yu Kuai <yukuai3@huawei.com> Link: https://lore.kernel.org/r/20250309160556.42854-1-colyli@kernel.org Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r--block/badblocks.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/block/badblocks.c b/block/badblocks.c
index 673ef068423a..ece64e76fe8f 100644
--- a/block/badblocks.c
+++ b/block/badblocks.c
@@ -1242,14 +1242,15 @@ re_check:
len = sectors;
update_sectors:
+ /* This situation should never happen */
+ WARN_ON(sectors < len);
+
s += len;
sectors -= len;
if (sectors > 0)
goto re_check;
- WARN_ON(sectors < 0);
-
if (unacked_badblocks > 0)
rv = -1;
else if (acked_badblocks > 0)