Now that all values that are collected into "sum" are unsigned int, make the sum itself unsigned int so that it overflows consistently with individual components and thus retains the monotonicity. Since seq_put_decimal_ull() is a function, we don't have to explicitly cast sum into unsigned long long. Integer promotion will take care of that (and the compiler will issue warnings if the types don't agree). Signed-off-by: Alexei Lozovsky <me@xxxxxxxxxx> --- fs/proc/stat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/proc/stat.c b/fs/proc/stat.c index 6561a06ef905..d31b83b2a175 100644 --- a/fs/proc/stat.c +++ b/fs/proc/stat.c @@ -110,7 +110,7 @@ static int show_stat(struct seq_file *p, void *v) int i, j; u64 user, nice, system, idle, iowait, irq, softirq, steal; u64 guest, guest_nice; - u64 sum = 0; + unsigned int sum = 0; u64 sum_softirq = 0; unsigned int per_softirq_sums[NR_SOFTIRQS] = {0}; struct timespec64 boottime; @@ -192,7 +192,7 @@ static int show_stat(struct seq_file *p, void *v) seq_put_decimal_ull(p, " ", nsec_to_clock_t(guest_nice)); seq_putc(p, '\n'); } - seq_put_decimal_ull(p, "intr ", (unsigned long long)sum); + seq_put_decimal_ull(p, "intr ", sum); show_all_irqs(p); -- 2.25.1