From patchwork Tue Mar 15 08:43:44 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Mickler X-Patchwork-Id: 635441 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p2F8tZu7032235 for ; Tue, 15 Mar 2011 08:55:35 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756002Ab1COIzQ (ORCPT ); Tue, 15 Mar 2011 04:55:16 -0400 Received: from ist.d-labs.de ([213.239.218.44]:47620 "EHLO mx01.d-labs.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755360Ab1COIx0 (ORCPT ); Tue, 15 Mar 2011 04:53:26 -0400 Received: from schatten.dmk.lab (f053219056.adsl.alicedsl.de [78.53.219.56]) by mx01.d-labs.de (Postfix) with ESMTPSA id C935F7FD61; Tue, 15 Mar 2011 09:53:25 +0100 (CET) Received: by schatten.dmk.lab (Postfix, from userid 1000) id 9A6C51850E; Tue, 15 Mar 2011 09:51:05 +0100 (CET) From: Florian Mickler To: mchehab@infradead.org Cc: oliver@neukum.org, jwjstone@fastmail.fm, Florian Mickler , linux-kernel@vger.kernel.org, Mauro Carvalho Chehab , linux-media@vger.kernel.org, Malcolm Priestley Subject: [PATCH 12/16] [media] lmedm04: get rid of on-stack dma buffers Date: Tue, 15 Mar 2011 09:43:44 +0100 Message-Id: <1300178655-24832-12-git-send-email-florian@mickler.org> X-Mailer: git-send-email 1.7.4.rc3 In-Reply-To: <1300178655-24832-1-git-send-email-florian@mickler.org> References: <20110315093632.5fc9fb77@schatten.dmk.lab> <1300178655-24832-1-git-send-email-florian@mickler.org> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Tue, 15 Mar 2011 08:55:35 +0000 (UTC) diff --git a/drivers/media/dvb/dvb-usb/lmedm04.c b/drivers/media/dvb/dvb-usb/lmedm04.c index 0a3e88f..bec5439 100644 --- a/drivers/media/dvb/dvb-usb/lmedm04.c +++ b/drivers/media/dvb/dvb-usb/lmedm04.c @@ -314,12 +314,17 @@ static int lme2510_int_read(struct dvb_usb_adapter *adap) static int lme2510_return_status(struct usb_device *dev) { int ret = 0; - u8 data[10] = {0}; + u8 *data; + + data = kzalloc(10, GFP_KERNEL); + if (!data) + return -ENOMEM; ret |= usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), 0x06, 0x80, 0x0302, 0x00, data, 0x0006, 200); info("Firmware Status: %x (%x)", ret , data[2]); + kfree(data); return (ret < 0) ? -ENODEV : data[2]; } @@ -603,7 +608,7 @@ static int lme2510_download_firmware(struct usb_device *dev, const struct firmware *fw) { int ret = 0; - u8 data[512] = {0}; + u8 *data; u16 j, wlen, len_in, start, end; u8 packet_size, dlen, i; u8 *fw_data; @@ -611,6 +616,11 @@ static int lme2510_download_firmware(struct usb_device *dev, packet_size = 0x31; len_in = 1; + data = kzalloc(512, GFP_KERNEL); + if (!data) { + info("FRM Could not start Firmware Download (Buffer allocation failed)"); + return -ENOMEM; + } info("FRM Starting Firmware Download"); @@ -654,7 +664,7 @@ static int lme2510_download_firmware(struct usb_device *dev, else info("FRM Firmware Download Completed - Resetting Device"); - + kfree(data); return (ret < 0) ? -ENODEV : 0; }