From b96f99301582fb159db774da4e6058aa6a5f098f Mon Sep 17 00:00:00 2001 From: chao an Date: Tue, 11 Nov 2025 18:31:37 +0800 Subject: [PATCH] sched/sched_lock: remove null pointer check of rtcb In previous commits to xiaomi, runtime null pointer checks for RTCB were removed. This could cause `sched_lock/unlock` exceptions when `DEBUG_ASSERTIONS` was disabled. In this commit, we removed all RTCB checks to improve performance by 1 comparison cycle References to null pointers in the RTCB will rely on hardware exception or MPU/MMU protection. | commit d94cb53d6cde6a999d862ae45e1fcd3692675cb4 (HEAD, origin/master, origin/HEAD) | Author: hujun5 | Date: Thu Feb 6 15:06:00 2025 +0800 | | sched_lock: remove the check for whether tcb is NULL | | Remove Redundant Checks | | Signed-off-by: hujun5 Signed-off-by: chao an --- sched/sched/sched_lock.c | 2 +- sched/sched/sched_unlock.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sched/sched/sched_lock.c b/sched/sched/sched_lock.c index 97ae1e90712f0..10a855ffbea61 100644 --- a/sched/sched/sched_lock.c +++ b/sched/sched/sched_lock.c @@ -76,7 +76,7 @@ void sched_lock(void) * integer type. */ - DEBUGASSERT(rtcb && rtcb->lockcount < MAX_LOCK_COUNT); + DEBUGASSERT(rtcb->lockcount < MAX_LOCK_COUNT); /* A counter is used to support locking. This allows nested lock * operations on this thread (on any CPU) diff --git a/sched/sched/sched_unlock.c b/sched/sched/sched_unlock.c index da75abe6bf116..23bb37271240e 100644 --- a/sched/sched/sched_unlock.c +++ b/sched/sched/sched_unlock.c @@ -64,7 +64,7 @@ void sched_unlock(void) /* rtcb may be NULL only during early boot-up phases */ - DEBUGASSERT(rtcb && rtcb->lockcount > 0); + DEBUGASSERT(rtcb->lockcount > 0); /* Check if the lock counter has decremented to zero. If so, * then pre-emption has been re-enabled.