|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
From 0000dc9edd5997cc49b8893a9d5407f89dfa1307 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
From: Matthew Garrett <matthew.garrett@nebula.com>
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
Date: Fri, 9 Aug 2013 18:36:30 -0400
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
Subject: [PATCH] Add option to automatically enforce module signatures when in
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
Secure Boot mode
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
UEFI Secure Boot provides a mechanism for ensuring that the firmware will
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
only load signed bootloaders and kernels. Certain use cases may also
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
require that all kernel modules also be signed. Add a configuration option
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
that enforces this automatically when enabled.
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
---
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
Documentation/x86/zero-page.txt | 2 ++
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
arch/x86/Kconfig | 11 ++++++
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
arch/x86/boot/compressed/eboot.c | 66 +++++++++++++++++++++++++++++++++++
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
arch/x86/include/uapi/asm/bootparam.h | 3 +-
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
arch/x86/kernel/setup.c | 6 ++++
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
include/linux/module.h | 6 ++++
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
kernel/module.c | 7 ++++
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
7 files changed, 100 insertions(+), 1 deletion(-)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
diff --git a/Documentation/x86/zero-page.txt b/Documentation/x86/zero-page.txt
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
18c8249 |
index 95a4d34af3fd..b8527c6b7646 100644
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
--- a/Documentation/x86/zero-page.txt
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+++ b/Documentation/x86/zero-page.txt
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
18c8249 |
@@ -31,6 +31,8 @@ Offset Proto Name Meaning
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
(below)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+1EB/001 ALL kbd_status Numlock is enabled
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+1EC/001 ALL secure_boot Secure boot is enabled in the firmware
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
1EF/001 ALL sentinel Used to detect broken bootloaders
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
290/040 ALL edd_mbr_sig_buffer EDD MBR signatures
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
2D0/A00 ALL e820_map E820 memory map table
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
index 0a7b885964ba..29b8ba9ae713 100644
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
--- a/arch/x86/Kconfig
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+++ b/arch/x86/Kconfig
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
@@ -1776,6 +1776,17 @@ config EFI_MIXED
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
If unsure, say N.
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+config EFI_SECURE_BOOT_SIG_ENFORCE
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ def_bool n
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ depends on EFI
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ prompt "Force module signing when UEFI Secure Boot is enabled"
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ ---help---
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ UEFI Secure Boot provides a mechanism for ensuring that the
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ firmware will only load signed bootloaders and kernels. Certain
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ use cases may also require that all kernel modules also be signed.
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ Say Y here to automatically enable module signature enforcement
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ when a system boots with UEFI Secure Boot enabled.
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
config SECCOMP
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
def_bool y
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
prompt "Enable seccomp to safely compute untrusted bytecode"
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
index 52fef606bc54..6b8b9a775b46 100644
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
--- a/arch/x86/boot/compressed/eboot.c
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+++ b/arch/x86/boot/compressed/eboot.c
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
@@ -12,6 +12,7 @@
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
#include <asm/efi.h>
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
#include <asm/setup.h>
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
#include <asm/desc.h>
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+#include <asm/bootparam_utils.h>
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
f1193f2 |
#include "../string.h"
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
f1193f2 |
#include "eboot.h"
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
@@ -571,6 +572,67 @@ free_handle:
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
efi_call_early(free_pool, pci_handle);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
}
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+static int get_secure_boot(void)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+{
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ u8 sb, setup;
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ unsigned long datasize = sizeof(sb);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ efi_guid_t var_guid = EFI_GLOBAL_VARIABLE_GUID;
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ efi_status_t status;
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ status = efi_early->call((unsigned long)sys_table->runtime->get_variable,
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ L"SecureBoot", &var_guid, NULL, &datasize, &sb);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ if (status != EFI_SUCCESS)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ return 0;
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ if (sb == 0)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ return 0;
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ status = efi_early->call((unsigned long)sys_table->runtime->get_variable,
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ L"SetupMode", &var_guid, NULL, &datasize,
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ &setup);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ if (status != EFI_SUCCESS)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ return 0;
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ if (setup == 1)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ return 0;
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ return 1;
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+}
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+/*
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ * See if we have Graphics Output Protocol
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto,
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ unsigned long size)
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+{
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ efi_status_t status;
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ void **gop_handle = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ status = efi_call_early(allocate_pool, EFI_LOADER_DATA,
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ size, (void **)&gop_handle);
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ if (status != EFI_SUCCESS)
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ return status;
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ status = efi_call_early(locate_handle,
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ EFI_LOCATE_BY_PROTOCOL,
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ proto, NULL, &size, gop_handle);
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ if (status != EFI_SUCCESS)
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ goto free_handle;
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ if (efi_early->is64)
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ status = setup_gop64(si, proto, size, gop_handle);
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ else
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ status = setup_gop32(si, proto, size, gop_handle);
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+free_handle:
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ efi_call_early(free_pool, gop_handle);
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+ return status;
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+}
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
+
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
static efi_status_t
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
setup_uga32(void **uga_handle, unsigned long size, u32 *width, u32 *height)
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
{
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
@@ -1126,6 +1188,10 @@ struct boot_params *efi_main(struct efi_config *c,
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
else
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
setup_boot_services32(efi_early);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ sanitize_boot_params(boot_params);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ boot_params->secure_boot = get_secure_boot();
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
setup_graphics(boot_params);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
c33dae8 |
setup_efi_pci(boot_params);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
index c18ce67495fa..2b3e5427097b 100644
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
--- a/arch/x86/include/uapi/asm/bootparam.h
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+++ b/arch/x86/include/uapi/asm/bootparam.h
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
b18e6e7 |
@@ -134,7 +134,8 @@ struct boot_params {
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
__u8 eddbuf_entries; /* 0x1e9 */
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
__u8 edd_mbr_sig_buf_entries; /* 0x1ea */
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
__u8 kbd_status; /* 0x1eb */
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
- __u8 _pad5[3]; /* 0x1ec */
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ __u8 secure_boot; /* 0x1ec */
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ __u8 _pad5[2]; /* 0x1ed */
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
/*
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
* The sentinel is set to a nonzero value (0xff) in header.S.
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
*
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
index c4e7b3991b60..bdb9881c7afd 100644
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
--- a/arch/x86/kernel/setup.c
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+++ b/arch/x86/kernel/setup.c
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
@@ -1152,6 +1152,12 @@ void __init setup_arch(char **cmdline_p)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
io_delay_init();
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+#ifdef CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ if (boot_params.secure_boot) {
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ enforce_signed_modules();
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+#endif
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
/*
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
* Parse the ACPI tables for possible boot-time SMP configuration.
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
diff --git a/include/linux/module.h b/include/linux/module.h
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
index 082298a09df1..38d0597f7615 100644
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
--- a/include/linux/module.h
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+++ b/include/linux/module.h
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
18c8249 |
@@ -273,6 +273,12 @@ const struct exception_table_entry *search_exception_tables(unsigned long add);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
struct notifier_block;
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+#ifdef CONFIG_MODULE_SIG
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+extern void enforce_signed_modules(void);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+#else
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+static inline void enforce_signed_modules(void) {};
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+#endif
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
#ifdef CONFIG_MODULES
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
extern int modules_disabled; /* for sysctl */
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
diff --git a/kernel/module.c b/kernel/module.c
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
index 3c384968f553..ea484f3a35b2 100644
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
--- a/kernel/module.c
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+++ b/kernel/module.c
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
@@ -4200,6 +4200,13 @@ void module_layout(struct module *mod,
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
EXPORT_SYMBOL(module_layout);
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
#endif
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+#ifdef CONFIG_MODULE_SIG
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+void enforce_signed_modules(void)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+{
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+ sig_enforce = true;
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+}
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+#endif
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
+
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
bool secure_modules(void)
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
{
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
6a91557 |
#ifdef CONFIG_MODULE_SIG
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
18c8249 |
--
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
0d24915 |
2.5.5
|
|
![](https://seccdn.libravatar.org/avatar/2b3dd3a56b56c16f6e54c1904578f5f0100d27020cdfbf6479a4e47482e712c0?s=16&d=retro) |
18c8249 |
|