Commit 2f210ce0 authored by Anton Blanchard's avatar Anton Blanchard Committed by Linus Torvalds

[PATCH] 64-bit timer fix

I think I have found it and it only hits on a 64 bit machine.

If the timeout is big enough we still need to initialise timer->entry.
Otherwise bad things happen we we hit del_timer.
parent 8737bd66
...@@ -94,9 +94,11 @@ static inline void internal_add_timer(tvec_base_t *base, timer_t *timer) ...@@ -94,9 +94,11 @@ static inline void internal_add_timer(tvec_base_t *base, timer_t *timer)
} else if (idx <= 0xffffffffUL) { } else if (idx <= 0xffffffffUL) {
int i = (expires >> (TVR_BITS + 3 * TVN_BITS)) & TVN_MASK; int i = (expires >> (TVR_BITS + 3 * TVN_BITS)) & TVN_MASK;
vec = base->tv5.vec + i; vec = base->tv5.vec + i;
} else } else {
/* Can only get here on architectures with 64-bit jiffies */ /* Can only get here on architectures with 64-bit jiffies */
INIT_LIST_HEAD(&timer->entry);
return; return;
}
/* /*
* Timers are FIFO: * Timers are FIFO:
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment