On 21:34 Tue 04 Mar , Lukas Razik wrote:
> Hello all!
>
> In a work handler (of a work queue) I want to avoid the concurrently usage
> of a socket (because there can be more worker-threads on a SMP system)...
>
> My first idea was to use spin_lock_irqsave in the work handler:
...
> Then I tried:
> ...
> spin_lock(&tx_d->lock);
> sock_sendmsg(...);
> spin_unlock(&tx_d->lock);
> ...
> and I get no error messages anymore but now a nice person asked me if
> that's safe and I think it isn't because interrupts are on in work handlers
> or not?
It probably works as long as there is no code which locks this spinlock with
interrupts disabled. But I recommend using a mutex instead, as it can sleeps.
The spinlock does busy waiting...
-Michi
--
programing a layer 3+4 network protocol for mesh networks
see http://michaelblizek.homelinux.net
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ