From patchwork Wed May 13 18:23:51 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Luis R. Rodriguez" X-Patchwork-Id: 6399341 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id D93AA9F374 for ; Wed, 13 May 2015 18:28:24 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 04C66202DD for ; Wed, 13 May 2015 18:28:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F3F2620274 for ; Wed, 13 May 2015 18:28:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754658AbbEMS2V (ORCPT ); Wed, 13 May 2015 14:28:21 -0400 Received: from mail-pd0-f175.google.com ([209.85.192.175]:36119 "EHLO mail-pd0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752183AbbEMS2U (ORCPT ); Wed, 13 May 2015 14:28:20 -0400 Received: by pdea3 with SMTP id a3so59234398pde.3; Wed, 13 May 2015 11:28:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=fBODEy9GjFmBnf9QnmChS3tsSpkYJih3tTdraALBpiI=; b=jcybjSB7+jN207p/s8SLO5vVdCfydyEfk5xyL13Qk25acIBuEtqcHZkEOZfiiyVlv+ X9e7F0AvV3NOB3z9XtyL2QR4de2NKPhCbPFc/dY9f9XV1yhEB/ctgCKXv83XKsgLKXJT pZx5RpZ0CasEIxIr6ln+lA6Le2XBrCtKon/9Q6nqHhK9waMckQrYvGpgzaTwri2jlpBo 85lXMjVsUBT2MHdds/0tPjg4SrFKlKn4bcy7U21I9ReBGf83Te3fpsb3sSVKnpoYOGqW npCA1dgrf4kDxH2Zh1uYDD7DnYWe2TratuUM5TEsIZw67LRXsrqVgxAKZmcQCNODWEoZ scQw== X-Received: by 10.70.131.33 with SMTP id oj1mr416598pdb.3.1431541699215; Wed, 13 May 2015 11:28:19 -0700 (PDT) Received: from mcgrof@gmail.com (c-98-234-145-61.hsd1.ca.comcast.net. [98.234.145.61]) by mx.google.com with ESMTPSA id j14sm19986831pbq.29.2015.05.13.11.28.16 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 13 May 2015 11:28:18 -0700 (PDT) Received: by mcgrof@gmail.com (sSMTP sendmail emulation); Wed, 13 May 2015 11:26:08 -0700 From: "Luis R. Rodriguez" To: ming.lei@canonical.com, rusty@rustcorp.com.au Cc: torvalds@linux-foundation.org, dhowells@redhat.com, seth.forshee@canonical.com, linux-kernel@vger.kernel.org, pebolle@tiscali.nl, linux-wireless@vger.kernel.org, gregkh@linuxfoundation.org, jlee@suse.com, tiwai@suse.de, casey@schaufler-ca.com, keescook@chromium.org, mjg59@srcf.ucam.org, akpm@linux-foundation.org, "Luis R. Rodriguez" , Kyle McMartin Subject: [RFC v2 1/6] firmware: generalize reading file contents as a helper Date: Wed, 13 May 2015 11:23:51 -0700 Message-Id: <1431541436-17007-2-git-send-email-mcgrof@do-not-panic.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1431541436-17007-1-git-send-email-mcgrof@do-not-panic.com> References: <1431541436-17007-1-git-send-email-mcgrof@do-not-panic.com> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: "Luis R. Rodriguez" We'll want to reuse this same code later in order to read two separate types of file contents. Although we can simplify fw_read_file_contents() to do a direct return we leave a bit of boilerplate code to make the next changes easier to review. In this case we'll later extend the firmware specific read to also go and fetch the signature file when required. This commit introduces no functional changes. Cc: Rusty Russell Cc: David Howells Cc: Ming Lei Cc: Seth Forshee Cc: Kyle McMartin Signed-off-by: Luis R. Rodriguez --- drivers/base/firmware_class.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index 8c3aa3c..134dd77 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -291,7 +291,8 @@ static const char * const fw_path[] = { module_param_string(path, fw_path_para, sizeof(fw_path_para), 0644); MODULE_PARM_DESC(path, "customized firmware image search path with a higher priority than default path"); -static int fw_read_file_contents(struct file *file, struct firmware_buf *fw_buf) +static int __read_file_contents(struct file *file, + void **dest_buf, size_t *dest_size) { int size; char *buf; @@ -314,14 +315,30 @@ static int fw_read_file_contents(struct file *file, struct firmware_buf *fw_buf) rc = security_kernel_fw_from_file(file, buf, size); if (rc) goto fail; - fw_buf->data = buf; - fw_buf->size = size; + + *dest_buf = buf; + *dest_size = size; + return 0; fail: vfree(buf); return rc; } +static int fw_read_file_contents(struct file *file, + struct firmware_buf *fw_buf) +{ + int rc; + + rc = __read_file_contents(file, + &fw_buf->data, + &fw_buf->size); + if (rc) + return rc; + + return 0; +} + static int fw_get_filesystem_firmware(struct device *device, struct firmware_buf *buf) {