From aa3d5c6af61e9b6583d25e854df46d59960713f1 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Mon, 20 Feb 2017 13:20:18 +1100 Subject: [PATCH 04/25] Prevent negative value causing further overflow in task_prio. --- kernel/sched/MuQSS.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c index 0e55eea..6f6100c 100644 --- a/kernel/sched/MuQSS.c +++ b/kernel/sched/MuQSS.c @@ -4275,8 +4275,10 @@ int task_prio(const struct task_struct *p) /* Convert to ms to avoid overflows */ delta = NS_TO_MS(p->deadline - task_rq(p)->niffies); + if (unlikely(delta < 0)) + delta = 0; delta = delta * 40 / ms_longest_deadline_diff(); - if (delta > 0 && delta <= 80) + if (delta <= 80) prio += delta; if (idleprio_task(p)) prio += 40; -- 2.9.3