Re: [PATCH] badblocks: Fix a nonsense WARN_ON() which checks whether a u64 variable < 0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



在 2025/03/10 0:05, colyli@xxxxxxxxxx 写道:
From: Coly Li <colyli@xxxxxxxxxx>

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@xxxxxxxxxx>
Signed-off-by: Coly Li <colyli@xxxxxxxxxx>
---
  block/badblocks.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)


LGTM
Reviewed-by: Yu Kuai <yukuai3@xxxxxxxxxx>

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 @@ static int _badblocks_check(struct badblocks *bb, sector_t s, sector_t sectors,
  	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)






[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux