Skip to content

firmware: expand test units for fallback mechanism

Luis R. Rodriguez lkml stable 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest7 patches 4 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7test_firmware: move misc_device downlib/test_firmware.c+6 -60 replies
2/7test_firmware: use device attribute groupslib/test_firmware.c+11 -240 replies
3/7tools: firmware: check for distro fallback udev cancel ruletools/testing/selftests/firmware/fw_userhelper.sh+26 -20 replies
4/7tools: firmware: rename fallback mechanism scripttools/testing/selftests/firmware/Makefile tools/testing/selftests/firmware/fw_fallback.sh+4 -30 replies
5/7tools: firmware: add fallback cancelation testingtools/testing/selftests/firmware/fw_fallback.sh+32 -00 replies
6/7test_firmware: add test custom fallback triggerlib/test_firmware.c tools/testing/selftests/firmware/fw_fallback.sh+113 -00 replies
7/7firmware: firmware: fix NULL pointer dereference in __fw_load_abort()drivers/base/firmware_class.c+1 -48 replies

Reviews trailers per patch

None of the 7 patches has a Reviewed-by or Acked-by.

PatchJakub KicinskiPatrick Bruenn
1/7
2/7
3/7
4/7
5/7
6/7
7/7Reported-and-Tested-by Reported-and-Tested-by Reported-and-Tested-by Reported-and-Tested-by Reported-and-Tested-by Reported-and-Tested-by

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/7] firmware: expand test units for fallback mechanism

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
Signature · 1 line
2.11.0