]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
sched: Switch to use hrtimer_setup()
authorNam Cao <namcao@linutronix.de>
Wed, 5 Feb 2025 10:38:57 +0000 (11:38 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 18 Feb 2025 09:32:32 +0000 (10:32 +0100)
hrtimer_setup() takes the callback function pointer as argument and
initializes the timer completely.

Replace hrtimer_init() and the open coded initialization of
hrtimer::function with the new setup mechanism.

Signed-off-by: Nam Cao <namcao@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/a55e849cba3c41b4c5708be6ea6be6f337d1a8fb.1738746821.git.namcao@linutronix.de
kernel/sched/core.c
kernel/sched/deadline.c
kernel/sched/fair.c
kernel/sched/rt.c

index 9aecd914ac6917f906f68f43a7f6aab380e14d2a..6469755ea6adf6bf2d97b904a49436d488320cc2 100644 (file)
@@ -916,8 +916,7 @@ static void hrtick_rq_init(struct rq *rq)
 #ifdef CONFIG_SMP
        INIT_CSD(&rq->hrtick_csd, __hrtick_start, rq);
 #endif
-       hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
-       rq->hrtick_timer.function = hrtick;
+       hrtimer_setup(&rq->hrtick_timer, hrtick, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
 }
 #else  /* CONFIG_SCHED_HRTICK */
 static inline void hrtick_clear(struct rq *rq)
index 38e4537790af7ef3006f28f7a1ae0f68afd151cf..2d0f571f95e9868ca1d6db709aeecc2cf3b632de 100644 (file)
@@ -1382,8 +1382,7 @@ static void init_dl_task_timer(struct sched_dl_entity *dl_se)
 {
        struct hrtimer *timer = &dl_se->dl_timer;
 
-       hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
-       timer->function = dl_task_timer;
+       hrtimer_setup(timer, dl_task_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
 }
 
 /*
@@ -1839,8 +1838,7 @@ static void init_dl_inactive_task_timer(struct sched_dl_entity *dl_se)
 {
        struct hrtimer *timer = &dl_se->inactive_timer;
 
-       hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
-       timer->function = inactive_task_timer;
+       hrtimer_setup(timer, inactive_task_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
 }
 
 #define __node_2_dle(node) \
index 1c0ef435a7aae0c6826c6b33ee159533688ec27d..88923f1873f6e1e650312124fdfd6c9872d1be4a 100644 (file)
@@ -6539,14 +6539,14 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b, struct cfs_bandwidth *paren
        cfs_b->hierarchical_quota = parent ? parent->hierarchical_quota : RUNTIME_INF;
 
        INIT_LIST_HEAD(&cfs_b->throttled_cfs_rq);
-       hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED);
-       cfs_b->period_timer.function = sched_cfs_period_timer;
+       hrtimer_setup(&cfs_b->period_timer, sched_cfs_period_timer, CLOCK_MONOTONIC,
+                     HRTIMER_MODE_ABS_PINNED);
 
        /* Add a random offset so that timers interleave */
        hrtimer_set_expires(&cfs_b->period_timer,
                            get_random_u32_below(cfs_b->period));
-       hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
-       cfs_b->slack_timer.function = sched_cfs_slack_timer;
+       hrtimer_setup(&cfs_b->slack_timer, sched_cfs_slack_timer, CLOCK_MONOTONIC,
+                     HRTIMER_MODE_REL);
        cfs_b->slack_started = false;
 }
 
index 4b8e33c615b12c4cc2661ca2337b03333eec7076..7a9ed4d933977f3c343d738a3c89c9c5fc43139f 100644 (file)
@@ -127,9 +127,8 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime)
 
        raw_spin_lock_init(&rt_b->rt_runtime_lock);
 
-       hrtimer_init(&rt_b->rt_period_timer, CLOCK_MONOTONIC,
-                    HRTIMER_MODE_REL_HARD);
-       rt_b->rt_period_timer.function = sched_rt_period_timer;
+       hrtimer_setup(&rt_b->rt_period_timer, sched_rt_period_timer, CLOCK_MONOTONIC,
+                     HRTIMER_MODE_REL_HARD);
 }
 
 static inline void do_start_rt_bandwidth(struct rt_bandwidth *rt_b)