mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
hrtimer: Move hrtimer_update_function() to hrtimer.c
The usage of the hrtimer base forces hrtimer.h to also expose the base structure definitions. Move the function to hrtimer.c to avoid this. Signed-off-by: Thomas Weißschuh (Schneider Electric) <thomas.weissschuh@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Link: https://patch.msgid.link/20260702-hrtimer-header-dependencies-v1-3-c50b19bda473@linutronix.de
This commit is contained in:
committed by
Thomas Gleixner
parent
d3dc7fabd4
commit
a116c7582d
+2
-22
@@ -287,28 +287,8 @@ static inline bool hrtimer_is_queued(struct hrtimer *timer)
|
||||
return READ_ONCE(timer->is_queued);
|
||||
}
|
||||
|
||||
/**
|
||||
* hrtimer_update_function - Update the timer's callback function
|
||||
* @timer: Timer to update
|
||||
* @function: New callback function
|
||||
*
|
||||
* Only safe to call if the timer is not enqueued. Can be called in the callback function if the
|
||||
* timer is not enqueued at the same time (see the comments above HRTIMER_STATE_ENQUEUED).
|
||||
*/
|
||||
static inline void hrtimer_update_function(struct hrtimer *timer,
|
||||
enum hrtimer_restart (*function)(struct hrtimer *))
|
||||
{
|
||||
#ifdef CONFIG_PROVE_LOCKING
|
||||
guard(raw_spinlock_irqsave)(&timer->base->cpu_base->lock);
|
||||
|
||||
if (WARN_ON_ONCE(hrtimer_is_queued(timer)))
|
||||
return;
|
||||
|
||||
if (WARN_ON_ONCE(!function))
|
||||
return;
|
||||
#endif
|
||||
ACCESS_PRIVATE(timer, function) = function;
|
||||
}
|
||||
void hrtimer_update_function(struct hrtimer *timer,
|
||||
enum hrtimer_restart (*function)(struct hrtimer *));
|
||||
|
||||
/* Forward a hrtimer so it expires after now: */
|
||||
extern u64
|
||||
|
||||
@@ -1039,6 +1039,30 @@ static inline void unlock_hrtimer_base(const struct hrtimer *timer, unsigned lon
|
||||
raw_spin_unlock_irqrestore(&timer->base->cpu_base->lock, *flags);
|
||||
}
|
||||
|
||||
/**
|
||||
* hrtimer_update_function - Update the timer's callback function
|
||||
* @timer: Timer to update
|
||||
* @function: New callback function
|
||||
*
|
||||
* Only safe to call if the timer is not enqueued. Can be called in the callback function if the
|
||||
* timer is not enqueued at the same time (see the comments above HRTIMER_STATE_ENQUEUED).
|
||||
*/
|
||||
void hrtimer_update_function(struct hrtimer *timer,
|
||||
enum hrtimer_restart (*function)(struct hrtimer *))
|
||||
{
|
||||
#ifdef CONFIG_PROVE_LOCKING
|
||||
guard(raw_spinlock_irqsave)(&timer->base->cpu_base->lock);
|
||||
|
||||
if (WARN_ON_ONCE(hrtimer_is_queued(timer)))
|
||||
return;
|
||||
|
||||
if (WARN_ON_ONCE(!function))
|
||||
return;
|
||||
#endif
|
||||
ACCESS_PRIVATE(timer, function) = function;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hrtimer_update_function);
|
||||
|
||||
/**
|
||||
* hrtimer_forward() - forward the timer expiry
|
||||
* @timer: hrtimer to forward
|
||||
|
||||
Reference in New Issue
Block a user