From patchwork Thu Feb 2 17:35:21 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janne Grunau X-Patchwork-Id: 9749 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1Rt0fW-00007J-9s for patchwork@linuxtv.org; Thu, 02 Feb 2012 18:41:58 +0100 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.75/mailfrontend-2) with esmtp for id 1Rt0fV-0001ec-Ic; Thu, 02 Feb 2012 18:41:58 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932690Ab2BBRlt (ORCPT ); Thu, 2 Feb 2012 12:41:49 -0500 Received: from scing.com ([217.160.110.58]:60456 "EHLO scing.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932658Ab2BBRlr (ORCPT ); Thu, 2 Feb 2012 12:41:47 -0500 X-Greylist: delayed 401 seconds by postgrey-1.27 at vger.kernel.org; Thu, 02 Feb 2012 12:41:46 EST Received: (qmail 16013 invoked from network); 2 Feb 2012 17:35:04 -0000 Received: from p5ddc4677.dip0.t-ipconnect.de (HELO aniel.jannau.net) (janne@93.220.70.119) by scing.com with ESMTPA; 2 Feb 2012 17:35:04 -0000 X-GoodMailTo: skipped X-GoodMailTo: skipped X-GoodMailTo: skipped From: Janne Grunau To: linux-media@vger.kernel.org Cc: Joerg Desch , stable@kernel.org Subject: [PATCH 1/1] [media] hdpvr: fix race conditon during start of streaming Date: Thu, 2 Feb 2012 18:35:21 +0100 Message-Id: <1328204121-7207-1-git-send-email-j@jannau.net> X-Mailer: git-send-email 1.7.8.4 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2012.2.2.173019 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' MULTIPLE_RCPTS 0.1, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1100_1199 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, RATWARE_LC_DIGITS_HELO 0, __ANY_URI 0, __CP_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __FRAUD_BODY_WEBMAIL 0, __FRAUD_WEBMAIL 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS ' status has to be set to STREAMING before the streaming worker is queued. hdpvr_transmit_buffers() will exit immediately otherwise. Reported-by: Joerg Desch CC: stable@kernel.org --- 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 087f7c0..41fd57b 100644 --- a/drivers/media/video/hdpvr/hdpvr-video.c +++ b/drivers/media/video/hdpvr/hdpvr-video.c @@ -283,12 +283,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; }