From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753926AbcIBSNS (ORCPT ); Fri, 2 Sep 2016 14:13:18 -0400 Received: from mx2.suse.de ([195.135.220.15]:59642 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753736AbcIBSNM (ORCPT ); Fri, 2 Sep 2016 14:13:12 -0400 Date: Fri, 2 Sep 2016 20:13:06 +0200 From: "Luis R. Rodriguez" To: Daniel Wagner Cc: mcgrof@kernel.org, ming.lei@canonical.com, akpm@linux-foundation.org, gregkh@linuxfoundation.org, 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 Subject: Re: [PATCH v3 5/5] firmware: fix fw cache to avoid usermode helper on suspend Message-ID: <20160902181306.GM3296@wotan.suse.de> 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> <3927fffd-27ab-ad50-7bcf-631ecad6f163@monom.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3927fffd-27ab-ad50-7bcf-631ecad6f163@monom.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Aug 31, 2016 at 09:03:53AM +0200, Daniel Wagner wrote: > 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; You're right, thanks! Luis