summaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorLuis R. Rodriguez2018-03-10 15:14:46 +0100
committerGreg Kroah-Hartman2018-03-20 09:28:46 +0100
commitb2e9a8553cebcb414753e0185ce6fa87e14ebf30 (patch)
tree61d1c02bdc98760be68f5cf618cb9c56d2e7f054 /drivers/base
parentdrivers: base: add description for .coredump() callback (diff)
downloadkernel-qcow2-linux-b2e9a8553cebcb414753e0185ce6fa87e14ebf30.tar.gz
kernel-qcow2-linux-b2e9a8553cebcb414753e0185ce6fa87e14ebf30.tar.xz
kernel-qcow2-linux-b2e9a8553cebcb414753e0185ce6fa87e14ebf30.zip
firmware: simplify CONFIG_FW_LOADER_USER_HELPER_FALLBACK further
All CONFIG_FW_LOADER_USER_HELPER_FALLBACK really is, is just a bool, initailized at build time. Define it as such. This simplifies the logic even further, removing now all explicit #ifdefs around the code. Acked-by: Kees Cook <keescook@chromium.org> Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/firmware_loader.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/drivers/base/firmware_loader.c b/drivers/base/firmware_loader.c
index 7dd36ace6152..59dba794ce1a 100644
--- a/drivers/base/firmware_loader.c
+++ b/drivers/base/firmware_loader.c
@@ -266,6 +266,22 @@ static inline bool fw_state_is_aborted(struct fw_priv *fw_priv)
#ifdef CONFIG_FW_LOADER_USER_HELPER
+/**
+ * struct firmware_fallback_config - firmware fallback configuratioon settings
+ *
+ * Helps describe and fine tune the fallback mechanism.
+ *
+ * @force_sysfs_fallback: force the sysfs fallback mechanism to be used
+ * as if one had enabled CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y.
+ */
+struct firmware_fallback_config {
+ bool force_sysfs_fallback;
+};
+
+static const struct firmware_fallback_config fw_fallback_config = {
+ .force_sysfs_fallback = IS_ENABLED(CONFIG_FW_LOADER_USER_HELPER_FALLBACK),
+};
+
static inline bool fw_sysfs_done(struct fw_priv *fw_priv)
{
return __fw_state_check(fw_priv, FW_STATUS_DONE);
@@ -1151,19 +1167,14 @@ out_unlock:
return ret;
}
-#ifdef CONFIG_FW_LOADER_USER_HELPER_FALLBACK
-static bool fw_force_sysfs_fallback(unsigned int opt_flags)
-{
- return true;
-}
-#else
static bool fw_force_sysfs_fallback(unsigned int opt_flags)
{
+ if (fw_fallback_config.force_sysfs_fallback)
+ return true;
if (!(opt_flags & FW_OPT_USERHELPER))
return false;
return true;
}
-#endif
static bool fw_run_sysfs_fallback(unsigned int opt_flags)
{