From patchwork Thu Aug 4 07:14:12 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 7082 Return-path: Envelope-to: mchehab@infradead.org Delivery-date: Thu, 04 Aug 2011 07:15:07 +0000 Received: from casper.infradead.org [85.118.1.10] by localhost.localdomain with IMAP (fetchmail-6.3.17) for (single-drop); Thu, 04 Aug 2011 08:52:42 -0300 (BRT) Received: from vger.kernel.org ([209.132.180.67]) by casper.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1Qos95-0002rv-GQ; Thu, 04 Aug 2011 07:15:07 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752230Ab1HDHOv (ORCPT + 1 other); Thu, 4 Aug 2011 03:14:51 -0400 Received: from moutng.kundenserver.de ([212.227.126.171]:61418 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751989Ab1HDHO2 (ORCPT ); Thu, 4 Aug 2011 03:14:28 -0400 Received: from localhost (p548E06E4.dip0.t-ipconnect.de [84.142.6.228]) by mrelayeu.kundenserver.de (node=mrbap2) with ESMTP (Nemesis) id 0Lby3Y-1RGXOJ1iKa-00jlQb; Thu, 04 Aug 2011 09:14:27 +0200 From: Thierry Reding To: linux-media@vger.kernel.org Subject: [PATCH 14/21] [staging] tm6000: Initialize isochronous transfers only once. Date: Thu, 4 Aug 2011 09:14:12 +0200 Message-Id: <1312442059-23935-15-git-send-email-thierry.reding@avionic-design.de> X-Mailer: git-send-email 1.7.6 In-Reply-To: <1312442059-23935-1-git-send-email-thierry.reding@avionic-design.de> References: <1312442059-23935-1-git-send-email-thierry.reding@avionic-design.de> X-Provags-ID: V02:K0:9W1rJXkKXa7RoyLHPHoF2XuvN1Gp7DlrHvBR8CPrt0i vPDwFimyV428ZctcgGG3WLBO9gsA9So2qJDz+QXb1fGjlhO3Te K5vO5Yg6XtNj+vnUhphFU/H6FmHO7waJgfPX9vkk+fHXosh/d5 4OSsH0mwLf7Ag51IuDeC8+pXXwWWCGcEH3ULNQd1d8+jJMCHDD 1vZtn+M4P81s32a7tJrR5FiTzHUZRtVzfP44zqH5ITdsTGba+K bmAkBN09JVBpQ Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org This fixes a memory leak where isochronous buffers would be set up for each video buffer, while it is sufficient to set them up only once per device. --- drivers/staging/tm6000/tm6000-video.c | 8 ++------ 1 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/staging/tm6000/tm6000-video.c b/drivers/staging/tm6000/tm6000-video.c index 4b50f6c..492ec73 100644 --- a/drivers/staging/tm6000/tm6000-video.c +++ b/drivers/staging/tm6000/tm6000-video.c @@ -758,7 +758,7 @@ buffer_prepare(struct videobuf_queue *vq, struct videobuf_buffer *vb, struct tm6000_fh *fh = vq->priv_data; struct tm6000_buffer *buf = container_of(vb, struct tm6000_buffer, vb); struct tm6000_core *dev = fh->dev; - int rc = 0, urb_init = 0; + int rc = 0; BUG_ON(NULL == fh->fmt); @@ -784,13 +784,9 @@ buffer_prepare(struct videobuf_queue *vq, struct videobuf_buffer *vb, rc = videobuf_iolock(vq, &buf->vb, NULL); if (rc != 0) goto fail; - urb_init = 1; } - if (!dev->isoc_ctl.num_bufs) - urb_init = 1; - - if (urb_init) { + if (!dev->isoc_ctl.num_bufs) { rc = tm6000_prepare_isoc(dev); if (rc < 0) goto fail;