12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- From 0b176595ca1610037d1175e1786d1a8aff1fb43f Mon Sep 17 00:00:00 2001
- From: Chen Qi <Qi.Chen@windriver.com>
- Date: Tue, 6 Aug 2024 21:42:43 -0700
- Subject: [PATCH] kexec.c: add MFD_NOEXEC_SEAL flag explicitly
- Add MFD_NOEXEC_SEAL to avoid kernel warning like below:
- kexec[970]: memfd_create() called without MFD_EXEC or MFD_NOEXEC_SEAL set
- For old kernels, there will be no MFD_NOEXEC_SEAL definition, so fallback
- to define it to 0.
- Upstream-Status: Submitted [https://github.com/horms/kexec-tools/pull/7]
- Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
- ---
- kexec/kexec.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
- diff --git a/kexec/kexec.c b/kexec/kexec.c
- index 6bf12d7..2f8e7cc 100644
- --- a/kexec/kexec.c
- +++ b/kexec/kexec.c
- @@ -61,6 +61,10 @@
- #define KEXEC_LOADED_PATH "/sys/kernel/kexec_loaded"
- #define KEXEC_CRASH_LOADED_PATH "/sys/kernel/kexec_crash_loaded"
-
- +#ifndef MFD_NOEXEC_SEAL
- +#define MFD_NOEXEC_SEAL 0
- +#endif
- +
- unsigned long long mem_min = 0;
- unsigned long long mem_max = ULONG_MAX;
- unsigned long elfcorehdrsz = 0;
- @@ -661,7 +665,7 @@ static int copybuf_memfd(const char *kernel_buf, size_t size)
- {
- int fd, count;
-
- - fd = memfd_create("kernel", MFD_ALLOW_SEALING);
- + fd = memfd_create("kernel", MFD_ALLOW_SEALING | MFD_NOEXEC_SEAL);
- if (fd == -1)
- return fd;
-
|