From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751562AbdAWQLf (ORCPT ); Mon, 23 Jan 2017 11:11:35 -0500 Received: from mail.kernel.org ([198.145.29.136]:42294 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751443AbdAWQLc (ORCPT ); Mon, 23 Jan 2017 11:11:32 -0500 From: "Luis R. Rodriguez" To: gregkh@linuxfoundation.org Cc: ming.lei@canonical.com, keescook@chromium.org, linux-kernel-dev@beckhoff.com, jakub.kicinski@netronome.com, chris@chris-wilson.co.uk, oss-drivers@netronome.com, johannes@sipsolutions.net, j@w1.fi, teg@jklm.no, kay@vrfy.org, jwboyer@fedoraproject.org, dmitry.torokhov@gmail.com, seth.forshee@canonical.com, bjorn.andersson@linaro.org, linux-kernel@vger.kernel.org, wagi@monom.org, stephen.boyd@linaro.org, zohar@linux.vnet.ibm.com, tiwai@suse.de, dwmw2@infradead.org, fengguang.wu@intel.com, dhowells@redhat.com, arend.vanspriel@broadcom.com, kvalo@codeaurora.org, "Luis R. Rodriguez" Subject: [PATCH 0/7] firmware: expand test units for fallback mechanism Date: Mon, 23 Jan 2017 08:11:04 -0800 Message-Id: <20170123161111.5925-1-mcgrof@kernel.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170118200141.GH13946@wotan.suse.de> References: <20170118200141.GH13946@wotan.suse.de> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A kernel crash has been reported by a few folks on cancelling the firmware fallback mechanism introduced by some new code changes in v4.10. Testing this is not easy as most distributions disable the option to always use the fallback mechanism by default (CONFIG_FW_LOADER_USER_HELPER_FALLBACK), and our test driver for the firmware does not test against the fallback mechanism. If CONFIG_FW_LOADER_USER_HELPER_FALLBACK is disabled there are only two ways in which the kernel will use the fallback mechanism, on two drivers: o drivers/firmware/dell_rbu.c o drivers/leds/leds-lp55xx-common.c We need a way to easily test the fallback mechanism then even if distributions disable CONFIG_FW_LOADER_USER_HELPER_FALLBACK. This series expands the test_firmware driver to always have a knob to trigger a request which always requests the fallback mechanism, so long as CONFIG_FW_LOADER_USER_HELPER=y is enabled (most distributions), this trigger should help test the fallback mechanism. This series also fixes the issue reported. I've tested applying the test unit changes onto v4.9.5 and confirm the issue is not present there. The crash happens after commit 5d47ec02c37ea6 ("firmware: Correct handling of fw_state_wait() return value") but this is a fix for commit 5b029624948d ("firmware: do not use fw_lock for fw_state protection") which is a functional change introduced only on v4.10. Moving forward I will ask all parties to use all test scripts before applying any changes. If any APIs are changed we need a respective test unit for it. Luis R. Rodriguez (7): test_firmware: move misc_device down test_firmware: use device attribute groups tools: firmware: check for distro fallback udev cancel rule tools: firmware: rename fallback mechanism script tools: firmware: add fallback cancelation testing test_firmware: add test custom fallback trigger firmware: firmware: fix NULL pointer dereference in __fw_load_abort() drivers/base/firmware_class.c | 5 +- lib/test_firmware.c | 92 ++++++--- tools/testing/selftests/firmware/Makefile | 2 +- tools/testing/selftests/firmware/fw_fallback.sh | 224 ++++++++++++++++++++++ tools/testing/selftests/firmware/fw_userhelper.sh | 99 ---------- 5 files changed, 288 insertions(+), 134 deletions(-) create mode 100755 tools/testing/selftests/firmware/fw_fallback.sh delete mode 100755 tools/testing/selftests/firmware/fw_userhelper.sh -- 2.11.0