| From afa159538af61f1a65d48927f4e949fe514fb4fc Mon Sep 17 00:00:00 2001 |
| From: Janne Grunau <j@jannau.net> |
| Date: Thu, 2 Feb 2012 13:35:21 -0300 |
| Subject: [media] hdpvr: fix race conditon during start of streaming |
| |
| From: Janne Grunau <j@jannau.net> |
| |
| commit afa159538af61f1a65d48927f4e949fe514fb4fc upstream. |
| |
| status has to be set to STREAMING before the streaming worker is |
| queued. hdpvr_transmit_buffers() will exit immediately otherwise. |
| |
| Reported-by: Joerg Desch <vvd.joede@googlemail.com> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/media/video/hdpvr/hdpvr-video.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/media/video/hdpvr/hdpvr-video.c |
| +++ b/drivers/media/video/hdpvr/hdpvr-video.c |
| @@ -279,12 +279,13 @@ static int hdpvr_start_streaming(struct |
| |
| hdpvr_config_call(dev, CTRL_START_STREAMING_VALUE, 0x00); |
| |
| + dev->status = STATUS_STREAMING; |
| + |
| INIT_WORK(&dev->worker, hdpvr_transmit_buffers); |
| queue_work(dev->workqueue, &dev->worker); |
| |
| v4l2_dbg(MSG_BUFFER, hdpvr_debug, &dev->v4l2_dev, |
| "streaming started\n"); |
| - dev->status = STATUS_STREAMING; |
| |
| return 0; |
| } |