From 61607003b1ef6e61aed18ade0f4d3bc75f1683fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Tue, 25 Jun 2024 17:58:53 +0200 Subject: [PATCH] kernel: check for NULL smallTaskCore in power_saving mode rebalance() should fix power saving issue from #18915 Change-Id: Ie0d64445599a3f3af6b2c7f654b20e26bd4e3b8b Reviewed-on: https://review.haiku-os.org/c/haiku/+/7790 Reviewed-by: waddlesplash Tested-by: Commit checker robot Haiku-Format: Haiku-format Bot --- src/system/kernel/scheduler/power_saving.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/scheduler/power_saving.cpp b/src/system/kernel/scheduler/power_saving.cpp index 519cfe4b76..12ed609fac 100644 --- a/src/system/kernel/scheduler/power_saving.cpp +++ b/src/system/kernel/scheduler/power_saving.cpp @@ -150,8 +150,10 @@ rebalance(const ThreadData* threadData) sSmallTaskCore = NULL; CoreEntry* smallTaskCore = choose_small_task_core(); - if (threadLoad > coreLoad / 3 || !smallTaskCore->CPUMask().Matches(mask)) + if (threadLoad > coreLoad / 3 || smallTaskCore == NULL + || !smallTaskCore->CPUMask().Matches(mask)) { return core; + } return coreLoad > kVeryHighLoad ? smallTaskCore : core; }