From: Andrew Morton In the recent timer rework we lost the check for an add_timer() of an already-pending timer. That check was useful for networking, so put it back. Cc: "David S. Miller" Signed-off-by: Andrew Morton --- include/linux/timer.h | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN include/linux/timer.h~add_timer-of-pending-time-is-illegal include/linux/timer.h --- devel/include/linux/timer.h~add_timer-of-pending-time-is-illegal 2005-09-28 22:33:29.000000000 -0700 +++ devel-akpm/include/linux/timer.h 2005-09-28 22:33:52.000000000 -0700 @@ -78,8 +78,9 @@ extern unsigned long next_timer_interrup * Timers with an ->expired field in the past will be executed in the next * timer tick. */ -static inline void add_timer(struct timer_list * timer) +static inline void add_timer(struct timer_list *timer) { + BUG_ON(timer_pending(timer)); __mod_timer(timer, timer->expires); } _