From bd17d15ad082a4288e45be1679f52cba691a8e0d Mon Sep 17 00:00:00 2001 From: Jemmy Wong Date: Sat, 14 Jun 2025 15:28:15 +0800 Subject: [PATCH v0 07/13] sched/cpudeadline: Scope-based Resource Management Support This change replaces manual lock acquisition and release with lock guards to improve code robustness and reduce the risk of lock mismanagement. Signed-off-by: Jemmy Wong --- kernel/sched/cpudeadline.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c index 95baa12a1029..7959c9383e72 100644 --- a/kernel/sched/cpudeadline.c +++ b/kernel/sched/cpudeadline.c @@ -173,11 +173,10 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p, void cpudl_clear(struct cpudl *cp, int cpu) { int old_idx, new_cpu; - unsigned long flags; WARN_ON(!cpu_present(cpu)); - raw_spin_lock_irqsave(&cp->lock, flags); + guard(raw_spinlock_irqsave)(&cp->lock); old_idx = cp->elements[cpu].idx; if (old_idx == IDX_INVALID) { @@ -197,7 +196,6 @@ void cpudl_clear(struct cpudl *cp, int cpu) cpumask_set_cpu(cpu, cp->free_cpus); } - raw_spin_unlock_irqrestore(&cp->lock, flags); } /* @@ -213,11 +211,10 @@ void cpudl_clear(struct cpudl *cp, int cpu) void cpudl_set(struct cpudl *cp, int cpu, u64 dl) { int old_idx; - unsigned long flags; WARN_ON(!cpu_present(cpu)); - raw_spin_lock_irqsave(&cp->lock, flags); + guard(raw_spinlock_irqsave)(&cp->lock); old_idx = cp->elements[cpu].idx; if (old_idx == IDX_INVALID) { @@ -232,8 +229,6 @@ void cpudl_set(struct cpudl *cp, int cpu, u64 dl) cp->elements[old_idx].dl = dl; cpudl_heapify(cp, old_idx); } - - raw_spin_unlock_irqrestore(&cp->lock, flags); } /* -- 2.43.0