hrtimer: Mark the hrtimer_sleeper structure's ->task field __private

The hrtimer_sleeper structure's ->task field is now used only by the
hrtimer_sleeper_task_get() and hrtimer_sleeper_task_set() functions,
and there is no reason for it to be directly accessed anywhere else.

Therefore, mark this field __private and use ACCESS_PRIVATE() in
hrtimer_sleeper_task_get() and hrtimer_sleeper_task_set().

Suggested-by: Thomas Gleixner <tglx@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260919001428.3133388-11-paulmck@kernel.org
This commit is contained in:
Paul E. McKenney 2026-09-18 17:14:27 -07:00 committed by Thomas Gleixner
parent 15f8439833
commit ad80926d78

View File

@ -72,7 +72,7 @@ enum hrtimer_mode {
*/
struct hrtimer_sleeper {
struct hrtimer timer;
struct task_struct *task;
struct task_struct *__private task;
};
static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time)
@ -322,11 +322,11 @@ extern int schedule_hrtimeout_range_clock(ktime_t *expires,
extern int schedule_hrtimeout(ktime_t *expires, const enum hrtimer_mode mode);
static inline struct task_struct *hrtimer_sleeper_task_get(struct hrtimer_sleeper *sl)
{
return READ_ONCE(sl->task);
return READ_ONCE(ACCESS_PRIVATE(sl, task));
}
static inline void hrtimer_sleeper_task_set(struct hrtimer_sleeper *sl, struct task_struct *t)
{
WRITE_ONCE(sl->task, t);
WRITE_ONCE(ACCESS_PRIVATE(sl, task), t);
}
/* Soft interrupt function to run the hrtimer queues: */