Merge tag 'timers-cleanups-2025-05-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer cleanups from Thomas Gleixner:
"Another set of timer API cleanups:
- Convert init_timer*(), try_to_del_timer_sync() and
destroy_timer_on_stack() over to the canonical timer_*()
namespace convention.
There is another large conversion pending, which has not been included
because it would have caused a gazillion of merge conflicts in next.
The conversion scripts will be run towards the end of the merge window
and a pull request sent once all conflict dependencies have been
merged"
* tag 'timers-cleanups-2025-05-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
treewide, timers: Rename destroy_timer_on_stack() as timer_destroy_on_stack()
treewide, timers: Rename try_to_del_timer_sync() as timer_delete_sync_try()
timers: Rename init_timers() as timers_init()
timers: Rename NEXT_TIMER_MAX_DELTA as TIMER_NEXT_MAX_DELTA
timers: Rename __init_timer_on_stack() as __timer_init_on_stack()
timers: Rename __init_timer() as __timer_init()
timers: Rename init_timer_on_stack_key() as timer_init_key_on_stack()
timers: Rename init_timer_key() as timer_init_key()
This commit is contained in:
@@ -1501,7 +1501,7 @@ static int access_thread(void *arg)
|
||||
}
|
||||
} while (!torture_must_stop());
|
||||
timer_delete_sync(&timer);
|
||||
destroy_timer_on_stack(&timer);
|
||||
timer_destroy_on_stack(&timer);
|
||||
|
||||
torture_kthread_stopping("access_thread");
|
||||
return 0;
|
||||
|
||||
@@ -2371,7 +2371,7 @@ rcu_torture_reader(void *arg)
|
||||
} while (!torture_must_stop());
|
||||
if (irqreader && cur_ops->irq_capable) {
|
||||
timer_delete_sync(&t);
|
||||
destroy_timer_on_stack(&t);
|
||||
timer_destroy_on_stack(&t);
|
||||
}
|
||||
tick_dep_clear_task(current, TICK_DEP_BIT_RCU);
|
||||
torture_kthread_stopping("rcu_torture_reader");
|
||||
|
||||
@@ -100,7 +100,7 @@ signed long __sched schedule_timeout(signed long timeout)
|
||||
timer_delete_sync(&timer.timer);
|
||||
|
||||
/* Remove the timer from the object tracker */
|
||||
destroy_timer_on_stack(&timer.timer);
|
||||
timer_destroy_on_stack(&timer.timer);
|
||||
|
||||
timeout = expire - jiffies;
|
||||
|
||||
|
||||
+18
-18
@@ -850,7 +850,7 @@ static void do_init_timer(struct timer_list *timer,
|
||||
unsigned int flags,
|
||||
const char *name, struct lock_class_key *key);
|
||||
|
||||
void init_timer_on_stack_key(struct timer_list *timer,
|
||||
void timer_init_key_on_stack(struct timer_list *timer,
|
||||
void (*func)(struct timer_list *),
|
||||
unsigned int flags,
|
||||
const char *name, struct lock_class_key *key)
|
||||
@@ -858,13 +858,13 @@ void init_timer_on_stack_key(struct timer_list *timer,
|
||||
debug_object_init_on_stack(timer, &timer_debug_descr);
|
||||
do_init_timer(timer, func, flags, name, key);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(init_timer_on_stack_key);
|
||||
EXPORT_SYMBOL_GPL(timer_init_key_on_stack);
|
||||
|
||||
void destroy_timer_on_stack(struct timer_list *timer)
|
||||
void timer_destroy_on_stack(struct timer_list *timer)
|
||||
{
|
||||
debug_object_free(timer, &timer_debug_descr);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(destroy_timer_on_stack);
|
||||
EXPORT_SYMBOL_GPL(timer_destroy_on_stack);
|
||||
|
||||
#else
|
||||
static inline void debug_timer_init(struct timer_list *timer) { }
|
||||
@@ -904,7 +904,7 @@ static void do_init_timer(struct timer_list *timer,
|
||||
}
|
||||
|
||||
/**
|
||||
* init_timer_key - initialize a timer
|
||||
* timer_init_key - initialize a timer
|
||||
* @timer: the timer to be initialized
|
||||
* @func: timer callback function
|
||||
* @flags: timer flags
|
||||
@@ -912,17 +912,17 @@ static void do_init_timer(struct timer_list *timer,
|
||||
* @key: lockdep class key of the fake lock used for tracking timer
|
||||
* sync lock dependencies
|
||||
*
|
||||
* init_timer_key() must be done to a timer prior to calling *any* of the
|
||||
* timer_init_key() must be done to a timer prior to calling *any* of the
|
||||
* other timer functions.
|
||||
*/
|
||||
void init_timer_key(struct timer_list *timer,
|
||||
void timer_init_key(struct timer_list *timer,
|
||||
void (*func)(struct timer_list *), unsigned int flags,
|
||||
const char *name, struct lock_class_key *key)
|
||||
{
|
||||
debug_init(timer);
|
||||
do_init_timer(timer, func, flags, name, key);
|
||||
}
|
||||
EXPORT_SYMBOL(init_timer_key);
|
||||
EXPORT_SYMBOL(timer_init_key);
|
||||
|
||||
static inline void detach_timer(struct timer_list *timer, bool clear_pending)
|
||||
{
|
||||
@@ -1511,7 +1511,7 @@ static int __try_to_del_timer_sync(struct timer_list *timer, bool shutdown)
|
||||
}
|
||||
|
||||
/**
|
||||
* try_to_del_timer_sync - Try to deactivate a timer
|
||||
* timer_delete_sync_try - Try to deactivate a timer
|
||||
* @timer: Timer to deactivate
|
||||
*
|
||||
* This function tries to deactivate a timer. On success the timer is not
|
||||
@@ -1526,11 +1526,11 @@ static int __try_to_del_timer_sync(struct timer_list *timer, bool shutdown)
|
||||
* * %1 - The timer was pending and deactivated
|
||||
* * %-1 - The timer callback function is running on a different CPU
|
||||
*/
|
||||
int try_to_del_timer_sync(struct timer_list *timer)
|
||||
int timer_delete_sync_try(struct timer_list *timer)
|
||||
{
|
||||
return __try_to_del_timer_sync(timer, false);
|
||||
}
|
||||
EXPORT_SYMBOL(try_to_del_timer_sync);
|
||||
EXPORT_SYMBOL(timer_delete_sync_try);
|
||||
|
||||
#ifdef CONFIG_PREEMPT_RT
|
||||
static __init void timer_base_init_expiry_lock(struct timer_base *base)
|
||||
@@ -1900,7 +1900,7 @@ static void timer_recalc_next_expiry(struct timer_base *base)
|
||||
unsigned long clk, next, adj;
|
||||
unsigned lvl, offset = 0;
|
||||
|
||||
next = base->clk + NEXT_TIMER_MAX_DELTA;
|
||||
next = base->clk + TIMER_NEXT_MAX_DELTA;
|
||||
clk = base->clk;
|
||||
for (lvl = 0; lvl < LVL_DEPTH; lvl++, offset += LVL_SIZE) {
|
||||
int pos = next_pending_bucket(base, offset, clk & LVL_MASK);
|
||||
@@ -1963,7 +1963,7 @@ static void timer_recalc_next_expiry(struct timer_base *base)
|
||||
|
||||
WRITE_ONCE(base->next_expiry, next);
|
||||
base->next_expiry_recalc = false;
|
||||
base->timers_pending = !(next == base->clk + NEXT_TIMER_MAX_DELTA);
|
||||
base->timers_pending = !(next == base->clk + TIMER_NEXT_MAX_DELTA);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NO_HZ_COMMON
|
||||
@@ -2015,7 +2015,7 @@ static unsigned long next_timer_interrupt(struct timer_base *base,
|
||||
* easy comparable to find out which base holds the first pending timer.
|
||||
*/
|
||||
if (!base->timers_pending)
|
||||
WRITE_ONCE(base->next_expiry, basej + NEXT_TIMER_MAX_DELTA);
|
||||
WRITE_ONCE(base->next_expiry, basej + TIMER_NEXT_MAX_DELTA);
|
||||
|
||||
return base->next_expiry;
|
||||
}
|
||||
@@ -2399,7 +2399,7 @@ static inline void __run_timers(struct timer_base *base)
|
||||
* timer at this clk are that all matching timers have been
|
||||
* dequeued or no timer has been queued since
|
||||
* base::next_expiry was set to base::clk +
|
||||
* NEXT_TIMER_MAX_DELTA.
|
||||
* TIMER_NEXT_MAX_DELTA.
|
||||
*/
|
||||
WARN_ON_ONCE(!levels && !base->next_expiry_recalc
|
||||
&& base->timers_pending);
|
||||
@@ -2544,7 +2544,7 @@ int timers_prepare_cpu(unsigned int cpu)
|
||||
for (b = 0; b < NR_BASES; b++) {
|
||||
base = per_cpu_ptr(&timer_bases[b], cpu);
|
||||
base->clk = jiffies;
|
||||
base->next_expiry = base->clk + NEXT_TIMER_MAX_DELTA;
|
||||
base->next_expiry = base->clk + TIMER_NEXT_MAX_DELTA;
|
||||
base->next_expiry_recalc = false;
|
||||
base->timers_pending = false;
|
||||
base->is_idle = false;
|
||||
@@ -2599,7 +2599,7 @@ static void __init init_timer_cpu(int cpu)
|
||||
base->cpu = cpu;
|
||||
raw_spin_lock_init(&base->lock);
|
||||
base->clk = jiffies;
|
||||
base->next_expiry = base->clk + NEXT_TIMER_MAX_DELTA;
|
||||
base->next_expiry = base->clk + TIMER_NEXT_MAX_DELTA;
|
||||
timer_base_init_expiry_lock(base);
|
||||
}
|
||||
}
|
||||
@@ -2612,7 +2612,7 @@ static void __init init_timer_cpus(void)
|
||||
init_timer_cpu(cpu);
|
||||
}
|
||||
|
||||
void __init init_timers(void)
|
||||
void __init timers_init(void)
|
||||
{
|
||||
init_timer_cpus();
|
||||
posix_cputimers_init_work();
|
||||
|
||||
+1
-1
@@ -686,7 +686,7 @@ EXPORT_SYMBOL_GPL(destroy_work_on_stack);
|
||||
|
||||
void destroy_delayed_work_on_stack(struct delayed_work *work)
|
||||
{
|
||||
destroy_timer_on_stack(&work->timer);
|
||||
timer_destroy_on_stack(&work->timer);
|
||||
debug_object_free(&work->work, &work_debug_descr);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(destroy_delayed_work_on_stack);
|
||||
|
||||
Reference in New Issue
Block a user