Re: [2.6 patch] videobuf-core.c locking fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Dec 12, 2007 2:44 PM, Adrian Bunk <[email protected]> wrote:
> On Wed, Dec 12, 2007 at 01:57:27PM -0500, Shane wrote:
> > On Dec 12, 2007 11:37 AM, Shane <[email protected]> wrote:
> > > On Dec 12, 2007 9:21 AM, Mauro Carvalho Chehab <[email protected]> wrote:
> > > ...
> > > > The proper solution is provided by this changeset:
> > > > http://git.kernel.org/?p=linux/kernel/git/mchehab/v4l-dvb.git;a=commitdiff;h=19fb1457990b6b7e15586ec7331541a184233acc
> > >
> > > I applied this and it seems fine with a bttv card.
> >
> > Ugh, after further testing with a bttv card it seems this is not fine.
> >
> > vbi doesn't work anymore and my application gets stuck in a Zombie,
> > unkillable, have to reboot state :(
> >
> > mythtv    3683     1  -3  2.4  0.0      0     0 ?        Z<l  13:40:35
> > 00:00:06 [mythbackend] <defunct>
> >
> > Reverting Mauro's patch above does fix the problem.
>
> Thanks for testing, does the patch below fix it?
>
> > Shane
>
> cu
> Adrian
>
>
> <--  snip  -->
>
>
> After commit 19fb1457990b6b7e15586ec7331541a184233acc the callers in
> videobuf-core.c that already hold the lock must call
> __videobuf_read_start() instead of videobuf_read_start().
>
> Signed-off-by: Adrian Bunk <[email protected]>
>
> ---
>
>  drivers/media/video/videobuf-core.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> e1f8b4a49d86746f699919531c17fd154787e308
> diff --git a/drivers/media/video/videobuf-core.c b/drivers/media/video/videobuf-core.c
> index 81f77d2..c8a5cb5 100644
> --- a/drivers/media/video/videobuf-core.c
> +++ b/drivers/media/video/videobuf-core.c
> @@ -909,7 +909,7 @@ ssize_t videobuf_read_stream(struct videobuf_queue *q,
>         if (q->streaming)
>                 goto done;
>         if (!q->reading) {
> -               retval = videobuf_read_start(q);
> +               retval = __videobuf_read_start(q);
>                 if (retval < 0)
>                         goto done;
>         }
> @@ -982,7 +982,7 @@ unsigned int videobuf_poll_stream(struct file *file,
>                                          struct videobuf_buffer, stream);
>         } else {
>                 if (!q->reading)
> -                       videobuf_read_start(q);
> +                       __videobuf_read_start(q);
>                 if (!q->reading) {
>                         rc = POLLERR;
>                 } else if (NULL == q->read_buf) {
>

Yes it does! I was just going to send the same patch myself :)

Shane
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux