From d7c0059dc4fcca3f85d2cad1012353892ce28021 Mon Sep 17 00:00:00 2001 From: zhushengle Date: Mon, 6 Dec 2021 19:05:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B0=83=E5=BA=A6=E4=B8=AD=E5=B0=86pm?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=9A=84=E9=83=A8=E5=88=86=E7=94=A8LOSCFG=5F?= =?UTF-8?q?KERNEL=5FPM=E5=8C=85=E5=90=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Close #I4L00F Signed-off-by: zhushengle Change-Id: I0dbe0954dcb881c0079677c215aceb099d6d1b94 --- kernel/src/los_sched.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/kernel/src/los_sched.c b/kernel/src/los_sched.c index 405970c0..8f85c06d 100644 --- a/kernel/src/los_sched.c +++ b/kernel/src/los_sched.c @@ -34,7 +34,9 @@ #include "los_tick.h" #include "los_debug.h" #include "los_hook.h" +#if (LOSCFG_KERNEL_PM == 1) #include "los_pm.h" +#endif #ifdef __cplusplus #if __cplusplus @@ -221,13 +223,16 @@ STATIC INLINE VOID OsSchedSetNextExpireTime(UINT64 startTime, UINT32 responseID, VOID OsSchedUpdateExpireTime(UINT64 startTime, BOOL timeUpdate) { UINT64 endTime; + BOOL isPmMode = FALSE; LosTaskCB *runTask = g_losTask.runTask; if (!g_taskScheduled || g_tickIntLock) { return; } - BOOL isPmMode = OsIsPmMode(); +#if (LOSCFG_KERNEL_PM == 1) + isPmMode = OsIsPmMode(); +#endif if ((runTask->taskID != g_idleTaskID) && !isPmMode) { INT32 timeSlice = (runTask->timeSlice <= OS_TIME_SLICE_MIN) ? OS_SCHED_TIME_SLICES : runTask->timeSlice; endTime = startTime + timeSlice; @@ -443,11 +448,15 @@ STATIC VOID OsSchedUnfreezeTask(LosTaskCB *taskCB) VOID OsSchedSuspend(LosTaskCB *taskCB) { + BOOL isPmMode = FALSE; if (taskCB->taskStatus & OS_TASK_STATUS_READY) { OsSchedTaskDeQueue(taskCB); } - if ((taskCB->taskStatus & (OS_TASK_STATUS_PEND_TIME | OS_TASK_STATUS_DELAY)) && OsIsPmMode()) { +#if (LOSCFG_KERNEL_PM == 1) + isPmMode = OsIsPmMode(); +#endif + if ((taskCB->taskStatus & (OS_TASK_STATUS_PEND_TIME | OS_TASK_STATUS_DELAY)) && isPmMode) { OsSchedFreezeTask(taskCB); }