Received: by 10.223.185.111 with SMTP id b44csp1594443wrg; Sat, 10 Mar 2018 09:17:50 -0800 (PST) X-Google-Smtp-Source: AG47ELtMJkYlFojjXXZ03QoPa/KCJ+kCGJ5+wQDbO5MRtboJmDCOn31Le95eqcvjnDESDr/O6PT9 X-Received: by 10.101.97.26 with SMTP id z26mr2140466pgu.44.1520702269960; Sat, 10 Mar 2018 09:17:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520702269; cv=none; d=google.com; s=arc-20160816; b=zUaBKQ15Pmg4nj0WR/3KQmbdSkRTCkkh4NxMtI/CT8Hta/bZAfNvglFoEx9mVak4uN ejthmO4JBgpj2HMpTSapUBmBuaAfFUmXyJfC7fq9ig3T/pdUv2src6Ser5gZ8+8AYvGU JbCQo8NjQjCQjqNC1Y64NIY7C9ozBSIh8gZ7g2UrHXWl12YM33IW74qYzZV12fabF7yX s5ZwA3XSGlwSadkftYUZNL/96Q74rMjU8vUdNzIeoOf9hx1m3kRWFr70wdrH5oqJWNXY sKSPfrs5dQq3f8nrVRXQBDa0cuY7p+9iP9qmFBaZaT8eTt/cOk8g4bi+cSfI6ggYjN6T X8BA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature:dkim-signature :arc-authentication-results; bh=8RfMgxi8h1sQG6xkUhH3HHMwfQLrmYMYdW8Js2c58js=; b=qqIESqCl0qSxe7uEQpZWyQjXgKuLh+M2jHSfoOLxmacW3mo3wx0a+yOpNmNZr80e1E PuGwXmWKGlbbxscirIxcyZAOaKDOxR+wtgUiMhHClNlOpwvNDbm6uA1Vt3VTeEHoxuLd Ist/Vwn6HsycCwhFouor3eIkHN7eCTzdIRVPNX5kh1DqXFxTUrOVjs0whCzIOjPFG2Te Ta5YbK5ZpiYCMwA5NhekBvkwtr/G8qO6VRWP7Dtzr4ZiF5jdi4YFd9sEwv+zzpalCXSh rD5OEP2ISB3tJ+Ozch9i0Il1AypLoaFO7rRj8yIS2uz+JC0VkyTS5DBgrqcgMrz8aXYX 2j3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@google.com header.s=20161025 header.b=KezFTcnd; dkim=fail header.i=@chromium.org header.s=google header.b=ZJRrA2TL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r4si2531285pgs.323.2018.03.10.09.17.34; Sat, 10 Mar 2018 09:17:49 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@google.com header.s=20161025 header.b=KezFTcnd; dkim=fail header.i=@chromium.org header.s=google header.b=ZJRrA2TL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751263AbeCJRQl (ORCPT + 99 others); Sat, 10 Mar 2018 12:16:41 -0500 Received: from mail-vk0-f65.google.com ([209.85.213.65]:35386 "EHLO mail-vk0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751191AbeCJRQi (ORCPT ); Sat, 10 Mar 2018 12:16:38 -0500 Received: by mail-vk0-f65.google.com with SMTP id b65so3970057vka.2 for ; Sat, 10 Mar 2018 09:16:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=8RfMgxi8h1sQG6xkUhH3HHMwfQLrmYMYdW8Js2c58js=; b=KezFTcndiShFRuWtkY8LM3IfQWP2v86jX5RZLrC0fEZdzu8SSnJQvtYatU8IxbGWZ8 BTZmb0tDadt22oFnZ8fD4ZyxTOTGj7N0s3M1YNWcz7lmhYNIM7TP284YGRAtdeesQDYe lGg3Y1sd/VBzF1+xf67LDagMWAss57qFTqcCdqG83N+pXVFw4hdA1/AbrnV2HZc5Ven0 d6MdcMg2TTsTSxMGOfwk8LHeOWEtOeNL3i6hJZ0p22d6a9KWlhPCwv5XRCgY/4PMDeB0 FUqp9X6y4Z9+nKw0q6WbOU44hKU/pQjClaVcL9h7dX2/Y7rInKltpUuhOuWt415ii/Bk Afqg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=8RfMgxi8h1sQG6xkUhH3HHMwfQLrmYMYdW8Js2c58js=; b=ZJRrA2TL+aHRpVSrxPtEVpi5TTwI8QbNphWKV55Yd9Ay01P3epGwetQukpSac8+JMg G2cJqSMfVD1gwURVZblvhh5ZyjAAqR+BdmaHbft+hf3CeMPaP+Mav1dlSw6McRx4d3lD mb8ukuvJH7f9zb1Ay5Sf83EuKvM+EUEdyTDqU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=8RfMgxi8h1sQG6xkUhH3HHMwfQLrmYMYdW8Js2c58js=; b=cWCc1RoX+D/dbhvGb4onuaC68TA3m1k/zo29WPwulK8K1BFGBFzYjlEV3mDw98fSrZ Y89kboxQKFofiRwWvqxJyp+zkG65ZO96dd2rFUETaM5pdqrssdqs6dRo6q2pH6HXiENx oCNPelHIQmRu851lWIDCbnYvtIANL7aojbkcEgfRur4gOFncVFfA0P9mSD5eYZ6Wx2yS 0A3dXePPWI1mXJr6uxVIFEw/io73mdFGbG7gHpyBjPtuVEbWl9fXECo4B8OZNWAObk8c 6POLLCmkasiJ/4CtnjHJi6ExrYvG9JOGqkQ8f1zbaGQXVJVrVNS2ZtP+xloASjwkIkTv J94g== X-Gm-Message-State: AElRT7ECt4Fh03eZuMT3V6JBYlYAODIatfDvgdt/JvhojL4YWQe+fol1 kHjGh1y+WjxRRyerglVDTCCefosguYTn6E4yfs6A4Q== X-Received: by 10.31.47.194 with SMTP id v185mr1547787vkv.121.1520702197446; Sat, 10 Mar 2018 09:16:37 -0800 (PST) MIME-Version: 1.0 Received: by 10.31.242.140 with HTTP; Sat, 10 Mar 2018 09:16:36 -0800 (PST) In-Reply-To: <20180310141501.2214-1-mcgrof@kernel.org> References: <20180310141501.2214-1-mcgrof@kernel.org> From: Kees Cook Date: Sat, 10 Mar 2018 09:16:36 -0800 X-Google-Sender-Auth: 34xoLRISOXIsoONw2OiTb7ap0xg Message-ID: Subject: Re: [PATCH v3 00/20] firmware: development for v4.17 To: "Luis R. Rodriguez" Cc: Greg KH , Andrew Morton , Bitterblue of Monsea , Jakub Kicinski , linux-wireless , Shuah Khan , Martin Fuzzey , Mimi Zohar , David Howells , pali.rohar@gmail.com, Takashi Iwai , arend.vanspriel@broadcom.com, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , Nicolas Broeking , Vikram Mulukutla , Mark Brown , Dmitry Torokhov , David Woodhouse , Linus Torvalds , Abhay_Salunke@dell.com, bjorn.andersson@linaro.org, jewalt@lgsinnovations.com, oneukum@suse.com, ast@fb.com, andresx7@gmail.com, LKML , "linux-fsdevel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Mar 10, 2018 at 6:14 AM, Luis R. Rodriguez wrote: > Greg, > > Here's a respin of what I have queued up for v4.17 for the firmware API. It > combines the cleanup I've been working on and the addition of the new API call > request_firmware_cache() for fixing a corner case suspend issue on some type of > cards with an optimization in place where the firmware is *not* needed on > reboot. > > The cleanup work allows us to test the firmware API with one kernel > configuration. I've addressed Kees' feedback on this respin and > combined the code into drivers/base/firmware_class/. > > I've made one new test_firmware change in consideration for one firmware > change, the patch "firmware: ensure the firmware cache is not used on > incompatible calls" requires us to modify our tests scripts to use > the APIs sanely as well. > > I've put up these changes on my git tree, refer to the branch > "20180307-firmware-dev-for-v4.17" based on linux-next [0] and > the same name based on Linus' tree [1]. > > Questions, feedback, and specially rants are always welcomed. This all looks good to me! Thanks for respinning. :) -Kees > > [0] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/log/?h=20180307-firmware-dev-for-v4.17 > [1] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git/log/?h=20180307-firmware-dev-for-v4.17 > > Luis R. Rodriguez (20): > test_firmware: add simple firmware firmware test library > test_firmware: enable custom fallback testing on limited kernel > configs > test_firmware: replace syfs fallback check with kconfig_has helper > firmware: enable to split firmware_class into separate target files > firmware: simplify CONFIG_FW_LOADER_USER_HELPER_FALLBACK further > firmware: use helpers for setting up a temporary cache timeout > firmware: move loading timeout under struct firmware_fallback_config > firmware: split firmware fallback functionality into its own file > firmware: move firmware loader into its own directory > firmware: enable run time change of forcing fallback loader > firmware: enable to force disable the fallback mechanism at run time > test_firmware: expand on library with shared helpers > test_firmware: test three firmware kernel configs using a proc knob > rename: _request_firmware_load() fw_load_sysfs_fallback() > firmware: fix checking for return values for fw_add_devm_name() > firmware: add helper to check to see if fw cache is setup > test_firmware: modify custom fallback tests to use unique files > firmware: ensure the firmware cache is not used on incompatible calls > firmware: add request_firmware_cache() to help with cache on reboot > mt7601u: use request_firmware_cache() to address cache on reboot > > .../driver-api/firmware/fallback-mechanisms.rst | 2 +- > .../driver-api/firmware/request_firmware.rst | 14 + > MAINTAINERS | 2 +- > drivers/base/Makefile | 2 +- > drivers/base/firmware_loader/Makefile | 7 + > drivers/base/firmware_loader/fallback.c | 674 +++++++++++++++++ > drivers/base/firmware_loader/fallback.h | 67 ++ > drivers/base/firmware_loader/fallback_table.c | 55 ++ > drivers/base/firmware_loader/firmware.h | 115 +++ > .../{firmware_class.c => firmware_loader/main.c} | 833 ++------------------- > drivers/net/wireless/mediatek/mt7601u/mcu.c | 2 +- > include/linux/firmware.h | 3 + > kernel/sysctl.c | 11 + > tools/testing/selftests/firmware/Makefile | 2 +- > tools/testing/selftests/firmware/config | 4 + > tools/testing/selftests/firmware/fw_fallback.sh | 65 +- > tools/testing/selftests/firmware/fw_filesystem.sh | 72 +- > tools/testing/selftests/firmware/fw_lib.sh | 194 +++++ > tools/testing/selftests/firmware/fw_run_tests.sh | 70 ++ > 19 files changed, 1332 insertions(+), 862 deletions(-) > create mode 100644 drivers/base/firmware_loader/Makefile > create mode 100644 drivers/base/firmware_loader/fallback.c > create mode 100644 drivers/base/firmware_loader/fallback.h > create mode 100644 drivers/base/firmware_loader/fallback_table.c > create mode 100644 drivers/base/firmware_loader/firmware.h > rename drivers/base/{firmware_class.c => firmware_loader/main.c} (60%) > create mode 100755 tools/testing/selftests/firmware/fw_lib.sh > create mode 100755 tools/testing/selftests/firmware/fw_run_tests.sh > > -- > 2.16.2 > -- Kees Cook Pixel Security