For what its worth, my look at this problem seems to indicate that the
new timer pointer is zero. This would be a problem in the network code
somewhere. I would guess that the whole structure is being released by
cpu X while cpu y is trying to set up a timer. But then I don't really
know the network code (at all). Just going by the error, defer of zero
in add_timer() which only looks at the timer to verify that the pointers
are zero.
George
George
> --
>
> Brian Gerst
>
> ------------------------------------------------------------------------
> diff -urN linux-2.4.3/kernel/timer.c linux/kernel/timer.c
> --- linux-2.4.3/kernel/timer.c Thu Dec 14 20:52:22 2000
> +++ linux/kernel/timer.c Fri Apr 13 13:26:08 2001
> @@ -194,6 +194,7 @@
> if (!timer_pending(timer))
> return 0;
> list_del(&timer->list);
> + timer->list.next = timer->list.prev = NULL;
> return 1;
> }
>
> @@ -217,7 +218,6 @@
>
> spin_lock_irqsave(&timerlist_lock, flags);
> ret = detach_timer(timer);
> - timer->list.next = timer->list.prev = NULL;
> spin_unlock_irqrestore(&timerlist_lock, flags);
> return ret;
> }
> @@ -246,7 +246,6 @@
>
> spin_lock_irqsave(&timerlist_lock, flags);
> ret += detach_timer(timer);
> - timer->list.next = timer->list.prev = 0;
> running = timer_is_running(timer);
> spin_unlock_irqrestore(&timerlist_lock, flags);
>
> @@ -309,7 +308,6 @@
> data= timer->data;
>
> detach_timer(timer);
> - timer->list.next = timer->list.prev = NULL;
> timer_enter(timer);
> spin_unlock_irq(&timerlist_lock);
> fn(data);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/