From patchwork Wed Feb 28 13:33:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 879143 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=arndb.de Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zrxPj60TVz9s2B for ; Thu, 1 Mar 2018 00:34:49 +1100 (AEDT) Received: from localhost ([::1]:44326 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1er1se-0000Zx-0X for incoming@patchwork.ozlabs.org; Wed, 28 Feb 2018 08:34:48 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49576) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1er1s9-0000Yu-U5 for qemu-devel@nongnu.org; Wed, 28 Feb 2018 08:34:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1er1s3-0001tR-VR for qemu-devel@nongnu.org; Wed, 28 Feb 2018 08:34:17 -0500 Received: from mout.kundenserver.de ([212.227.126.133]:45029) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1er1s3-0001ss-Lb for qemu-devel@nongnu.org; Wed, 28 Feb 2018 08:34:11 -0500 Received: from wuerfel.lan ([95.208.111.237]) by mrelayeu.kundenserver.de (mreue003 [212.227.15.129]) with ESMTPA (Nemesis) id 0MKdqV-1epe9g40wR-001yQe; Wed, 28 Feb 2018 14:34:00 +0100 From: Arnd Bergmann To: Gabriel Somlo , "Michael S. Tsirkin" Date: Wed, 28 Feb 2018 14:33:49 +0100 Message-Id: <20180228133357.1848600-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:BrHYVvR3dpn9WUCBjSId6/kWQbpReZhJFSRN6/W1vAwWdFj76zf 0aElZkGPffnu3N+WdN4/K27U3gE5DD50GbKfuZXosBlL1mJh+eIMEw+OzoCmSIq6rxFT1Kd 0TS5xO1d6IAGalcczNwhjq88bPjQU1xbyn1uBHTthejnU1p0sMQpUVlFs7XIE7Upzh8dasj 3h/vYKieFX6sypHruofAQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:TFXL65DSNA8=:RDj2BYfaHk0THwxjYA6rC7 GpxdJ1T2QWo3fI65tPK5kdT+boEf95NNi8sF6QRpSf06yV8SX6uxSjyvMM/gv9zNw/xnNFOTD US68SrF9Dy0rzxyfmRMx8M8i9l394DpC0a34fhS0f8Bq2ttLcdiBj6TaDzYVh4mf6qd5ndKst OvqTyC4Iy9tymhp8EwNxn/3tlwc7NQWb/gCLldw/JvkAcdHwwpz6cG8cfaBC45RhJrfi7w+aD vIz+odm2J/5L/zKtRpafcV1J8nFWqHimcwa19gVRr9k8CoZecjxcGqUGe1azXgiQ8uAZ8FBDX nr3L2jxUAkHRBRDmXI4HrM3rHThvsnQnF6Ya1mR9tnvhAR+kGw5JL3fWvgNb7ni1ONDWz/HLk EIalgFH59yzbyrBO7PGUFsuEhIVKofnI9mPtSyAj38L8syoNLHXYnbu9A+8/5udahqw5om0zM 9DeIEOYg63xQNPRCToHaLwSo6Igik4203cNSHwHhjUKTFqiEgO749bxcG1mpCcclQ+ikW07+T NWwlHGxycua2J9BJND95eIpP03Q2H7jfDVWVxU4u8YQYfYdaZgt1z+r1V25eg2caliKXOBNsR b2excilWmXNgYW07QkUwnuGhNnsugvp12y8I52xu3FWa1wQ+8kvYXSE/vmfT6Ck0A16ta++Kf eKqpcCbrbcfKA0QlMFL81y1eDFpocCPZFxqL2i49u4kG7aEUw6hNc0CFSdyWRQ9Zn9lGDvl9c +Ls6wTPqx8Jw3haVxlwc2EHGr3+dtgMWxOWmDg== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.126.133 Subject: [Qemu-devel] [PATCH] fw_cfg: avoid unused function warning X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Vasyl Gomonovych , qemu-devel@nongnu.org, Arnd Bergmann , linux-kernel@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The newly introduced fw_cfg_dma_transfer() function is unused when CONFIG_CRASH_CORE is disabled: drivers/firmware/qemu_fw_cfg.c:89:16: error: 'fw_cfg_dma_transfer' defined but not used [-Werror=unused-function] static ssize_t fw_cfg_dma_transfer(void *address, u32 length, u32 control) This moves it into the #ifdef section that hides its caller to avoid the warning. Fixes: 47e78bfb5426 ("fw_cfg: write vmcoreinfo details") Signed-off-by: Arnd Bergmann --- drivers/firmware/qemu_fw_cfg.c | 60 +++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/drivers/firmware/qemu_fw_cfg.c b/drivers/firmware/qemu_fw_cfg.c index 3015e77aebca..f002bb40519b 100644 --- a/drivers/firmware/qemu_fw_cfg.c +++ b/drivers/firmware/qemu_fw_cfg.c @@ -66,6 +66,36 @@ static void fw_cfg_sel_endianness(u16 key) iowrite16(key, fw_cfg_reg_ctrl); } +/* read chunk of given fw_cfg blob (caller responsible for sanity-check) */ +static ssize_t fw_cfg_read_blob(u16 key, + void *buf, loff_t pos, size_t count) +{ + u32 glk = -1U; + acpi_status status; + + /* If we have ACPI, ensure mutual exclusion against any potential + * device access by the firmware, e.g. via AML methods: + */ + status = acpi_acquire_global_lock(ACPI_WAIT_FOREVER, &glk); + if (ACPI_FAILURE(status) && status != AE_NOT_CONFIGURED) { + /* Should never get here */ + WARN(1, "fw_cfg_read_blob: Failed to lock ACPI!\n"); + memset(buf, 0, count); + return -EINVAL; + } + + mutex_lock(&fw_cfg_dev_lock); + fw_cfg_sel_endianness(key); + while (pos-- > 0) + ioread8(fw_cfg_reg_data); + ioread8_rep(fw_cfg_reg_data, buf, count); + mutex_unlock(&fw_cfg_dev_lock); + + acpi_release_global_lock(glk); + return count; +} + +#ifdef CONFIG_CRASH_CORE static inline bool fw_cfg_dma_enabled(void) { return (fw_cfg_rev & FW_CFG_VERSION_DMA) && fw_cfg_reg_dma; @@ -124,36 +154,6 @@ static ssize_t fw_cfg_dma_transfer(void *address, u32 length, u32 control) return ret; } -/* read chunk of given fw_cfg blob (caller responsible for sanity-check) */ -static ssize_t fw_cfg_read_blob(u16 key, - void *buf, loff_t pos, size_t count) -{ - u32 glk = -1U; - acpi_status status; - - /* If we have ACPI, ensure mutual exclusion against any potential - * device access by the firmware, e.g. via AML methods: - */ - status = acpi_acquire_global_lock(ACPI_WAIT_FOREVER, &glk); - if (ACPI_FAILURE(status) && status != AE_NOT_CONFIGURED) { - /* Should never get here */ - WARN(1, "fw_cfg_read_blob: Failed to lock ACPI!\n"); - memset(buf, 0, count); - return -EINVAL; - } - - mutex_lock(&fw_cfg_dev_lock); - fw_cfg_sel_endianness(key); - while (pos-- > 0) - ioread8(fw_cfg_reg_data); - ioread8_rep(fw_cfg_reg_data, buf, count); - mutex_unlock(&fw_cfg_dev_lock); - - acpi_release_global_lock(glk); - return count; -} - -#ifdef CONFIG_CRASH_CORE /* write chunk of given fw_cfg blob (caller responsible for sanity-check) */ static ssize_t fw_cfg_write_blob(u16 key, void *buf, loff_t pos, size_t count)