Thread (32 messages) 32 messages, 4 authors, 2010-07-28

Re: [PATCH 3/9] IR: replace spinlock with mutex.

From: Jarod Wilson <hidden>
Date: 2010-07-28 17:54:21
Also in: linux-media

On Wed, Jul 28, 2010 at 07:32:58PM +0300, Maxim Levitsky wrote:
On Wed, 2010-07-28 at 13:03 -0300, Mauro Carvalho Chehab wrote:
quoted
Em 28-07-2010 12:14, Maxim Levitsky escreveu:
quoted
Some handlers (lirc for example) allocates memory on initialization,
doing so in atomic context is cumbersome.
Fixes warning about sleeping function in atomic context.
You should not replace it by a mutex, as the decoding code may happen during
IRQ time on several drivers.
I though decoding code is run by a work queue?
Yeah, it is. (INIT_WORK(&ir->raw->rx_work, ir_raw_event_work); in
ir_raw_event_register).
I don't see any atomic codepath here...
I think the ir_raw_event_store variants are the only things that are run
from an interrupt context, and none of them touch ir_raw_handler_lock.
That lock is advertised as being for the protection of ir_raw_handler_list
and ir_raw_client_list, which are primarily manipulated by
register/unregister functions, and we just lock them when doing actual IR
decode work (via said work queue) so we don't feed raw IR somewhere that
we shouldn't. I think Maxim is correct here, we should be okay with
changing this to a mutex, unless I'm missing something else.

-- 
Jarod Wilson
jarod@redhat.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help