aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMimi Zohar <zohar@linux.vnet.ibm.com>2018-07-13 14:05:59 -0400
committerJames Morris <james.morris@microsoft.com>2018-07-16 15:31:57 -0400
commit6e852651f28eee851069c7d40989281fae4bf9d2 (patch)
tree2e3c159316960aea87c20d76c5d22a7cb991e966
parent16c267aac86b463b1fcccd43c89f4c8e5c5c86fa (diff)
firmware: add call to LSM hook before firmware sysfs fallback
Add an LSM hook prior to allowing firmware sysfs fallback loading. Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com> Acked-by: Luis R. Rodriguez <mcgrof@kernel.org> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: James Morris <james.morris@microsoft.com>
-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