[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100601171710.GA5176@linux-m68k.org>
Date: Tue, 1 Jun 2010 19:17:10 +0200
From: Richard Zidlicky <rz@...ux-m68k.org>
To: Jiri Slaby <jirislaby@...il.com>
Cc: linux-kernel@...r.kernel.org, linux-media@...r.kernel.org
Subject: Re: schedule inside spin_lock_irqsave?
On Sun, May 30, 2010 at 05:24:38PM +0200, Jiri Slaby wrote:
Hi,
> > came across following snippet of code (2.6.34:drivers/media/dvb/siano/smscoreapi.c) and
...
...
...
> This should be
> wait_event(&coredev->buffer_mng_waitq, cb = get_entry());
> with get_entry like:
> struct smscore_buffer_t *get_entry(void)
> {
> struct smscore_buffer_t *cb = NULL;
> spin_lock_irqsave(&coredev->bufferslock, flags);
> if (!list_empty(&coredev->buffers)) {
> cb = (struct smscore_buffer_t *) coredev->buffers.next;
> list_del(&cb->entry);
> }
> spin_unlock_irqrestore(&coredev->bufferslock, flags);
> return cb;
> }
...
...
...
>
> Looking at the smscore_buffer_t definition, this is really ugly since it
> relies on entry being the first in the structure. It should be
> list_first_entry(&coredev->buffers, ...) instead, cast-less.
>
> > list_del(&cb->entry);
> > }
> > spin_unlock_irqrestore(&coredev->bufferslock, flags);
> > return cb;
> > }
thanks for the suggestions, is it on anyones TODO list or should I cook up my own patch?
Would take a few more days till I can get at it.
BTW does anyone have knowledge how to enable IR receiver code for the smsxxx devices?
Looks like its just the matter of setting sms_board_gpio_cfg.ir to the "right" value
- which value?
Richard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists