firmware: enable to force disable the fallback mechanism at run time
You currently need four different kernel builds to test the firmware API fully. By adding a proc knob to force disable the fallback mechanism completely we are able to reduce the amount of kernels you need built to test the firmware API down to two. 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>
This commit is contained in:
parent
ceb1813224
commit
2cd7a1c6dc
@ -643,6 +643,11 @@ static bool fw_force_sysfs_fallback(unsigned int opt_flags)
|
||||
|
||||
static bool fw_run_sysfs_fallback(unsigned int opt_flags)
|
||||
{
|
||||
if (fw_fallback_config.ignore_sysfs_fallback) {
|
||||
pr_info_once("Ignoring firmware sysfs fallback due to debugfs knob\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((opt_flags & FW_OPT_NOFALLBACK))
|
||||
return false;
|
||||
|
||||
|
@ -14,12 +14,16 @@
|
||||
* as if one had enabled CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y.
|
||||
* Useful to help debug a CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
|
||||
* functionality on a kernel where that config entry has been disabled.
|
||||
* @ignore_sysfs_fallback: force to disable the sysfs fallback mechanism.
|
||||
* This emulates the behaviour as if we had set the kernel
|
||||
* config CONFIG_FW_LOADER_USER_HELPER=n.
|
||||
* @old_timeout: for internal use
|
||||
* @loading_timeout: the timeout to wait for the fallback mechanism before
|
||||
* giving up, in seconds.
|
||||
*/
|
||||
struct firmware_fallback_config {
|
||||
unsigned int force_sysfs_fallback;
|
||||
unsigned int ignore_sysfs_fallback;
|
||||
int old_timeout;
|
||||
int loading_timeout;
|
||||
};
|
||||
|
@ -39,6 +39,15 @@ struct ctl_table firmware_config_table[] = {
|
||||
.extra1 = &zero,
|
||||
.extra2 = &one,
|
||||
},
|
||||
{
|
||||
.procname = "ignore_sysfs_fallback",
|
||||
.data = &fw_fallback_config.ignore_sysfs_fallback,
|
||||
.maxlen = sizeof(unsigned int),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_douintvec_minmax,
|
||||
.extra1 = &zero,
|
||||
.extra2 = &one,
|
||||
},
|
||||
{ }
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(firmware_config_table);
|
||||
|
Loading…
Reference in New Issue
Block a user