[tip: timers/urgent] hrtimer: Add missing ACCESS_PRIVATE() for hrtimer::function

From: tip-bot2 for Nam Cao
Date: Wed Apr 09 2025 - 15:07:10 EST


The following commit has been merged into the timers/urgent branch of tip:

Commit-ID: 2424e146bee00ddb4d4f79d3224f54634ca8d2bc
Gitweb: https://git.kernel.org/tip/2424e146bee00ddb4d4f79d3224f54634ca8d2bc
Author: Nam Cao <namcao@xxxxxxxxxxxxx>
AuthorDate: Tue, 08 Apr 2025 12:38:54 +02:00
Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CommitterDate: Wed, 09 Apr 2025 21:00:42 +02:00

hrtimer: Add missing ACCESS_PRIVATE() for hrtimer::function

The "function" field of struct hrtimer has been changed to private, but
two instances have not been converted to use ACCESS_PRIVATE().

Convert them to use ACCESS_PRIVATE().

Fixes: 04257da0c99c ("hrtimers: Make callback function pointer private")
Reported-by: kernel test robot <lkp@xxxxxxxxx>
Signed-off-by: Nam Cao <namcao@xxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link: https://lore.kernel.org/all/20250408103854.1851093-1-namcao@xxxxxxxxxxxxx
Closes: https://lore.kernel.org/oe-kbuild-all/202504071931.vOVl13tt-lkp@xxxxxxxxx/
Closes: https://lore.kernel.org/oe-kbuild-all/202504072155.5UAZjYGU-lkp@xxxxxxxxx/
---
include/linux/hrtimer.h | 2 +-
kernel/time/hrtimer.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 1adcba3..1ef867b 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -345,7 +345,7 @@ static inline void hrtimer_update_function(struct hrtimer *timer,
if (WARN_ON_ONCE(!function))
return;
#endif
- timer->function = function;
+ ACCESS_PRIVATE(timer, function) = function;
}

/* Forward a hrtimer so it expires after now: */
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
index 517ee25..30899a8 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -366,7 +366,7 @@ static const struct debug_obj_descr hrtimer_debug_descr;

static void *hrtimer_debug_hint(void *addr)
{
- return ((struct hrtimer *) addr)->function;
+ return ACCESS_PRIVATE((struct hrtimer *)addr, function);
}

/*