Sorry, I should have been more clear. I meant the assumption that we only
care about a true return from del_timer().
But if del_timer() returns 0, then there may be a problem. We can't tell the
difference between the following two cases:
(1) The timer hadn't been started.
(2) The timer had been started, has expired and is no longer pending, but
another CPU is running its handler routine.
try_to_del_timer_sync() _does_, however, distinguish between these cases: the
first is the 0 return, the second is the -1 return, and the case where it
dequeued the timer is the 1 return.
BTW, can a timer handler be preempted? I assume not... But it can be delayed
by interrupt processing.
David
-