netdev
[Top] [All Lists]

Re: tx_timeout and timer serialisation

To: rusty@xxxxxxxxxxxxxxxx (Rusty Russell)
Subject: Re: tx_timeout and timer serialisation
From: kuznet@xxxxxxxxxxxxx
Date: Tue, 30 May 2000 21:29:20 +0400 (MSK DST)
Cc: netdev@xxxxxxxxxxx
In-reply-to: <20000530043810.48AAA8189@halfway> from "Rusty Russell" at May 30, 0 02:08:10 pm
Sender: owner-netdev@xxxxxxxxxxx
Hello!

> Get rid of the braindead timer_exit() macro, and inside
> run_timer_list, do:
> 
> #ifdef CONFIG_SMP
>       if (timer->function(timer->data)) {
>               timer->running = 0;
>               mb();
>       }
> #else
>       timer->function(timer->data);
> #endif

I apologize. Certainly it could look like.

        if (timer->flags & TIMER_SELF_DESTRUCTABLE) {
                timer->function(timer->data);
                timer->running = 0;
                mb();
        } else {
                timer->function(timer->data);
        }


But both ways are still wrong. We still need macro telling,
when a self-destructable timer is running even if we need not
any synchronization. So that timer_exit() is required in any case.

Alexey

<Prev in Thread] Current Thread [Next in Thread>