diff options
| author | Anton Blanchard <anton@samba.org> | 2002-10-04 03:46:19 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-10-04 03:46:19 -0700 |
| commit | 2f210ce0c52679364409d8696a74356af5d880db (patch) | |
| tree | c477b301cc373800ae5a50c79b26734d1c0bf486 /kernel | |
| parent | 8737bd6628e876847f0302397df05da10b912be5 (diff) | |
[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.
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/timer.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/timer.c b/kernel/timer.c index 96113a11d875..bdd8df9e1691 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -94,9 +94,11 @@ static inline void internal_add_timer(tvec_base_t *base, timer_t *timer) } else if (idx <= 0xffffffffUL) { int i = (expires >> (TVR_BITS + 3 * TVN_BITS)) & TVN_MASK; vec = base->tv5.vec + i; - } else + } else { /* Can only get here on architectures with 64-bit jiffies */ + INIT_LIST_HEAD(&timer->entry); return; + } /* * Timers are FIFO: */ |
