From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756381AbcHaHEb (ORCPT ); Wed, 31 Aug 2016 03:04:31 -0400 Received: from atlantic540.startdedicated.de ([188.138.9.77]:51262 "EHLO atlantic540.startdedicated.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751128AbcHaHE2 (ORCPT ); Wed, 31 Aug 2016 03:04:28 -0400 Subject: Re: [PATCH v3 5/5] firmware: fix fw cache to avoid usermode helper on suspend To: mcgrof@kernel.org, ming.lei@canonical.com, akpm@linux-foundation.org, gregkh@linuxfoundation.org References: <1466117661-22075-1-git-send-email-mcgrof@kernel.org> <1471999507-913-1-git-send-email-mcgrof@kernel.org> <1471999507-913-6-git-send-email-mcgrof@kernel.org> Cc: daniel.wagner@bmw-carit.de, mmarek@suse.com, linux-kernel@vger.kernel.org, markivx@codeaurora.org, stephen.boyd@linaro.org, zohar@linux.vnet.ibm.com, broonie@kernel.org, tiwai@suse.de, johannes@sipsolutions.net, chunkeey@googlemail.com, hauke@hauke-m.de, jwboyer@fedoraproject.org, dmitry.torokhov@gmail.com, dwmw2@infradead.org, jslaby@suse.com, torvalds@linux-foundation.org, luto@amacapital.net, fengguang.wu@intel.com, rpurdie@rpsys.net, j.anaszewski@samsung.com, Abhay_Salunke@dell.com, Julia.Lawall@lip6.fr, Gilles.Muller@lip6.fr, nicolas.palix@imag.fr, teg@jklm.no, dhowells@redhat.com, bjorn.andersson@linaro.org, arend.vanspriel@broadcom.com, kvalo@codeaurora.org From: Daniel Wagner Message-ID: <3927fffd-27ab-ad50-7bcf-631ecad6f163@monom.org> Date: Wed, 31 Aug 2016 09:03:53 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <1471999507-913-6-git-send-email-mcgrof@kernel.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Luis, On 08/24/2016 02:45 AM, mcgrof@kernel.org wrote: > diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c > index 22d1760a4278..dca4f9cbf4db 100644 > --- a/drivers/base/firmware_class.c > +++ b/drivers/base/firmware_class.c > @@ -1412,7 +1412,7 @@ static int cache_firmware(const char *fw_name) > > pr_debug("%s: %s\n", __func__, fw_name); > > - ret = request_firmware(&fw, fw_name, NULL); > + ret = request_firmware_direct(&fw, fw_name, NULL); > if (!ret) > kfree(fw); > > While you are at it you should kill this here as well: @@ -1622,7 +1637,6 @@ static void __device_uncache_fw_images(void) static void device_cache_fw_images(void) { struct firmware_cache *fwc = &fw_cache; - int old_timeout; DEFINE_WAIT(wait); pr_debug("%s\n", __func__); @@ -1630,17 +1644,6 @@ static void device_cache_fw_images(void) /* cancel uncache work */ cancel_delayed_work_sync(&fwc->work); - /* - * use small loading timeout for caching devices' firmware - * because all these firmware images have been loaded - * successfully at lease once, also system is ready for - * completing firmware loading now. The maximum size of - * firmware in current distributions is about 2M bytes, - * so 10 secs should be enough. - */ - old_timeout = loading_timeout; - loading_timeout = 10; - mutex_lock(&fw_lock); fwc->state = FW_LOADER_START_CACHE; dpm_for_each_dev(NULL, dev_cache_fw_image); @@ -1648,8 +1651,6 @@ static void device_cache_fw_images(void) /* wait for completion of caching firmware for all devices */ async_synchronize_full_domain(&fw_cache_domain); - - loading_timeout = old_timeout; } cheers, daniel