summaryrefslogtreecommitdiff
path: root/kernel/sched/cputime.c
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2024-09-05 14:01:38 -0600
committerJonathan Corbet <corbet@lwn.net>2024-09-05 14:01:38 -0600
commitd224338aa105bf3c4c4aa8b2ccdbd675c71ffbfe (patch)
treeb7b6b8c98595c89f7ad5307120cb3156708991bc /kernel/sched/cputime.c
parenteb5ed2fae19745fcb7dd0dcfbfbcd8b2847bc5c1 (diff)
parent431c1646e1f86b949fa3685efc50b660a364c2b6 (diff)
downloadlwn-d224338aa105bf3c4c4aa8b2ccdbd675c71ffbfe.tar.gz
lwn-d224338aa105bf3c4c4aa8b2ccdbd675c71ffbfe.zip
Merge tag 'v6.11-rc6' into docs-mw
This is done primarily to get a docs build fix merged via another tree so that "make htmldocs" stops failing.
Diffstat (limited to 'kernel/sched/cputime.c')
-rw-r--r--kernel/sched/cputime.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index a5e00293ae43..0bed0fa1acd9 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -582,6 +582,12 @@ void cputime_adjust(struct task_cputime *curr, struct prev_cputime *prev,
}
stime = mul_u64_u64_div_u64(stime, rtime, stime + utime);
+ /*
+ * Because mul_u64_u64_div_u64() can approximate on some
+ * achitectures; enforce the constraint that: a*b/(b+c) <= a.
+ */
+ if (unlikely(stime > rtime))
+ stime = rtime;
update:
/*