aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/firmware_loader/fallback.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base/firmware_loader/fallback.c')
-rw-r--r--drivers/base/firmware_loader/fallback.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/base/firmware_loader/fallback.c b/drivers/base/firmware_loader/fallback.c
index 7f732744f0d3..202324291542 100644
--- a/drivers/base/firmware_loader/fallback.c
+++ b/drivers/base/firmware_loader/fallback.c
@@ -651,6 +651,8 @@ static bool fw_force_sysfs_fallback(enum fw_opt opt_flags)
651 651
652static bool fw_run_sysfs_fallback(enum fw_opt opt_flags) 652static bool fw_run_sysfs_fallback(enum fw_opt opt_flags)
653{ 653{
654 int ret;
655
654 if (fw_fallback_config.ignore_sysfs_fallback) { 656 if (fw_fallback_config.ignore_sysfs_fallback) {
655 pr_info_once("Ignoring firmware sysfs fallback due to sysctl knob\n"); 657 pr_info_once("Ignoring firmware sysfs fallback due to sysctl knob\n");
656 return false; 658 return false;
@@ -659,6 +661,11 @@ static bool fw_run_sysfs_fallback(enum fw_opt opt_flags)
659 if ((opt_flags & FW_OPT_NOFALLBACK)) 661 if ((opt_flags & FW_OPT_NOFALLBACK))
660 return false; 662 return false;
661 663
664 /* Also permit LSMs and IMA to fail firmware sysfs fallback */
665 ret = security_kernel_load_data(LOADING_FIRMWARE);
666 if (ret < 0)
667 return ret;
668
662 return fw_force_sysfs_fallback(opt_flags); 669 return fw_force_sysfs_fallback(opt_flags);
663} 670}
664 671