From 8a49b0fd609ca347dbc8400af139c2b5e188f159 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 19 Feb 2024 00:58:00 +0100 Subject: Introduce and use assert_splsched() --- i386/i386/spl.h | 1 + kern/sched.h | 4 ++-- kern/sched_prim.c | 4 ++-- kern/thread.h | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/i386/i386/spl.h b/i386/i386/spl.h index 2a3f1a3a..41ad225d 100644 --- a/i386/i386/spl.h +++ b/i386/i386/spl.h @@ -59,6 +59,7 @@ extern spl_t (splvm)(void); extern spl_t (spl7)(void); extern spl_t (splclock)(void); extern spl_t (splsched)(void); +#define assert_splsched() assert(splsched() == SPL7) extern spl_t (splhigh)(void); extern spl_t (splx)(spl_t n); diff --git a/kern/sched.h b/kern/sched.h index 35747f19..d7e74d3a 100644 --- a/kern/sched.h +++ b/kern/sched.h @@ -77,11 +77,11 @@ typedef struct run_queue *run_queue_t; /* Shall be taken at splsched only */ #ifdef MACH_LDEBUG #define runq_lock(rq) do { \ - assert(splsched() == SPL7); \ + assert_splsched(); \ simple_lock_nocheck(&(rq)->lock); \ } while (0) #define runq_unlock(rq) do { \ - assert(splsched() == SPL7); \ + assert_splsched(); \ simple_unlock_nocheck(&(rq)->lock); \ } while (0) #else diff --git a/kern/sched_prim.c b/kern/sched_prim.c index 28792194..24f342fb 100644 --- a/kern/sched_prim.c +++ b/kern/sched_prim.c @@ -134,11 +134,11 @@ queue_head_t wait_queue[NUMQUEUES]; #ifdef MACH_LDEBUG #define waitq_lock(wl) do { \ - assert(splsched() == SPL7); \ + assert_splsched(); \ simple_lock_nocheck(wl); \ } while (0) #define waitq_unlock(wl) do { \ - assert(splsched() == SPL7); \ + assert_splsched(); \ simple_unlock_nocheck(wl); \ } while (0) #else diff --git a/kern/thread.h b/kern/thread.h index 21b25030..81d32924 100644 --- a/kern/thread.h +++ b/kern/thread.h @@ -399,11 +399,11 @@ extern void thread_unfreeze( /* Shall be taken at splsched only */ #ifdef MACH_LDEBUG #define thread_lock(th) do { \ - assert(splsched() == SPL7); \ + assert_splsched(); \ simple_lock_nocheck(&(th)->lock); \ } while (0) #define thread_unlock(th) do { \ - assert(splsched() == SPL7); \ + assert_splsched(); \ simple_unlock_nocheck(&(th)->lock); \ } while (0) #else -- cgit v1.2.3