diff options
author | Janne Grunau <j@jannau.net> | 2012-02-02 13:35:21 -0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-03-04 09:49:21 -0800 |
commit | 1bf5d0a4b23b3c1d54d9f993cf2be16cce387b99 (patch) | |
tree | b66b6b7bdf63b62a4c9dde7a06da9397f38a0c25 | |
parent | 5027714da2c8288d7ea39309bf66020a2e14a5d5 (diff) | |
download | lwn-1bf5d0a4b23b3c1d54d9f993cf2be16cce387b99.tar.gz lwn-1bf5d0a4b23b3c1d54d9f993cf2be16cce387b99.zip |
hdpvr: fix race conditon during start of streaming
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>
-rw-r--r-- | drivers/media/video/hdpvr/hdpvr-video.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/video/hdpvr/hdpvr-video.c b/drivers/media/video/hdpvr/hdpvr-video.c index 2eb9dc2ebe59..09f0ee0d1f4e 100644 --- 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_device *dev) 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; } |