mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 08:44:21 +08:00
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)
|
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))
|
if ((opt_flags & FW_OPT_NOFALLBACK))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -14,12 +14,16 @@
|
|||||||
* as if one had enabled CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y.
|
* as if one had enabled CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y.
|
||||||
* Useful to help debug a 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.
|
* 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
|
* @old_timeout: for internal use
|
||||||
* @loading_timeout: the timeout to wait for the fallback mechanism before
|
* @loading_timeout: the timeout to wait for the fallback mechanism before
|
||||||
* giving up, in seconds.
|
* giving up, in seconds.
|
||||||
*/
|
*/
|
||||||
struct firmware_fallback_config {
|
struct firmware_fallback_config {
|
||||||
unsigned int force_sysfs_fallback;
|
unsigned int force_sysfs_fallback;
|
||||||
|
unsigned int ignore_sysfs_fallback;
|
||||||
int old_timeout;
|
int old_timeout;
|
||||||
int loading_timeout;
|
int loading_timeout;
|
||||||
};
|
};
|
||||||
|
@ -39,6 +39,15 @@ struct ctl_table firmware_config_table[] = {
|
|||||||
.extra1 = &zero,
|
.extra1 = &zero,
|
||||||
.extra2 = &one,
|
.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);
|
EXPORT_SYMBOL_GPL(firmware_config_table);
|
||||||
|
Loading…
Reference in New Issue
Block a user