]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
dm-stats: fix dm_jiffies_to_msec64
authorMikulas Patocka <mpatocka@redhat.com>
Fri, 10 Jul 2026 16:37:15 +0000 (18:37 +0200)
committerMikulas Patocka <mpatocka@redhat.com>
Fri, 10 Jul 2026 16:40:27 +0000 (18:40 +0200)
There were wrong calculations in dm_jiffies_to_msec64 that produced
incorrect output when HZ was different from 1000. This commit fixes them.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Assisted-by: Claude:claude-opus-4-6
Fixes: fd2ed4d25270 ("dm: add statistics support")
Cc: stable@vger.kernel.org
drivers/md/dm-stats.c

index e06374a3329e68bc464ec72af7917c3182e10644..5df710061a11653f901c8c6bbf5fe6192928b6f9 100644 (file)
@@ -840,10 +840,10 @@ static unsigned long long dm_jiffies_to_msec64(struct dm_stat *s, unsigned long
                result = jiffies_to_msecs(j & 0x3fffff);
        if (j >= 1 << 22) {
                mult = jiffies_to_msecs(1 << 22);
-               result += (unsigned long long)mult * (unsigned long long)jiffies_to_msecs((j >> 22) & 0x3fffff);
+               result += (unsigned long long)mult * ((j >> 22) & 0x3fffff);
        }
        if (j >= 1ULL << 44)
-               result += (unsigned long long)mult * (unsigned long long)mult * (unsigned long long)jiffies_to_msecs(j >> 44);
+               result += (unsigned long long)mult * (unsigned long long)(1 << 22) * (j >> 44);
 
        return result;
 }