Deleting timers

Alan Stern
2009-06-26T19:50:59Z

Thomas:

The major difference -- in fact, almost the only difference -- between
del_timer() and try_to_del_timer_sync() is that try_to_del_timer_sync
returns a special code (-1) if the timer couldn't be deleted because it
is currently running, whereas del_timer doesn't check this.

Furthermore, the "_sync" in the name suggests that
try_to_del_timer_sync will wait until a running timer has finished,
which it clearly does not do.

Despite these facts, the kerneldoc for try_to_del_timer_sync states
that it must not be called in interrupt context. Why not? Isn't that
advice simply wrong?

With this in mind, would there be any objection if I renamed it to
try_to_del_timer(), removed the comment forbidding it to be used in
interrupt context, and made it available even on non-SMP builds?

Alan Stern

P.S.: The only other difference is that del_timer calls
timer_stats_timer_clear_start_info. Why doesn't try_to_del_timer_sync
do the same thing?