The firmware API has had some issues a while ago, some of this is not well documented, and its still hard to grasp. This documents some of these issues, adds SmPL grammar rules to enable us to hunt for issues, and annotations to help us with our effort to finally compartamentalize that pesky usermode helper.
Previously this was just one patch, the grammar rule to help find request firmware API users on init or probe, this series extends that effort with usermode helper grammar rules, and some annotations and documentation on the firmware_class driver to avoid further issues. Documenting the usermode helper and making it clear why we cannot remove it is important for analysis for the next series which adds the new flexible sysdata firmware API. This series depends on the coccicheck series which enables annotations on coccinelle patches to require a specific version of coccinelle [0], as such coordination with Michal is in order. This series is also further extended next with the new sydata API, the full set of changes is available on my linux-next tree [1]. Perhaps now a good time to discuss -- if 0-day should enable the rule scripts/coccinelle/api/request_firmware-usermode.cocci to be called on every 0-day iteration, it runs rather fast and it should help police against avoiding futher explicit users of the usermode helper. [0] https://lkml.kernel.org/r/1466116292-21843-1-git-send-email-mcg...@kernel.org [1] https://git.kernel.org/cgit/linux/kernel/git/mcgrof/linux-next.git/log/?h=20160616-sysdata-v2 Luis R. Rodriguez (5): MAINTAINERS: extend firmware_class maintainer list firmware: annotate thou shalt not request fw on init or probe firmware: update usermode helper docs and add SmPL report firmware: add usermode helper DECLARE_FW_LOADER_USER() annotation firmware: fix fw cache to avoid usermode helper on suspend Documentation/firmware_class/README | 59 +++++++++- MAINTAINERS | 1 + drivers/base/Kconfig | 2 +- drivers/base/firmware_class.c | 2 +- drivers/firmware/dell_rbu.c | 1 + drivers/leds/leds-lp55xx-common.c | 1 + include/linux/firmware.h | 7 ++ .../request_firmware-avoid-init-probe-init.cocci | 130 +++++++++++++++++++++ .../coccinelle/api/request_firmware-usermode.cocci | 44 +++++++ 9 files changed, 240 insertions(+), 7 deletions(-) create mode 100644 scripts/coccinelle/api/request_firmware-avoid-init-probe-init.cocci create mode 100644 scripts/coccinelle/api/request_firmware-usermode.cocci -- 2.8.2