mirror of
https://abf.rosa.ru/djam/kernel-6.6.git
synced 2025-02-25 11:52:46 +00:00
Rediff patch for kernel v5.10.64
This commit is contained in:
parent
3663c10b2d
commit
0f662eabce
1 changed files with 15 additions and 15 deletions
|
@ -1,7 +1,7 @@
|
||||||
From 460b2ff3c8509372228afae9e869aa375b85c319 Mon Sep 17 00:00:00 2001
|
From f2c459c92298deb7054414bd857fe26723be5dab Mon Sep 17 00:00:00 2001
|
||||||
From: Alexey Sheplyakov <asheplyakov@altlinux.org>
|
From: Alexey Sheplyakov <asheplyakov@altlinux.org>
|
||||||
Date: Tue, 10 Nov 2020 19:05:39 +0400
|
Date: Tue, 10 Nov 2020 19:05:39 +0400
|
||||||
Subject: [PATCH 607/625] Fixed secondary CPUs boot on BE-M1000 SoC
|
Subject: [PATCH 607/631] Fixed secondary CPUs boot on BE-M1000 SoC
|
||||||
|
|
||||||
The secure world on BE-M1000 SoC denies execution attempts outside of
|
The secure world on BE-M1000 SoC denies execution attempts outside of
|
||||||
the ranges [0x80000000, 0x8FFFFFFF] [0xA0000000, 0xBFFFFFFF]. Thus
|
the ranges [0x80000000, 0x8FFFFFFF] [0xA0000000, 0xBFFFFFFF]. Thus
|
||||||
|
@ -19,7 +19,7 @@ ones) and forcibly relocate the kernel to a low(er) address.
|
||||||
1 file changed, 60 insertions(+), 1 deletion(-)
|
1 file changed, 60 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/firmware/efi/libstub/arm64-stub.c b/drivers/firmware/efi/libstub/arm64-stub.c
|
diff --git a/drivers/firmware/efi/libstub/arm64-stub.c b/drivers/firmware/efi/libstub/arm64-stub.c
|
||||||
index 22ece1ad68a8..897708508909 100644
|
index c1b57dfb1277..411f1546d171 100644
|
||||||
--- a/drivers/firmware/efi/libstub/arm64-stub.c
|
--- a/drivers/firmware/efi/libstub/arm64-stub.c
|
||||||
+++ b/drivers/firmware/efi/libstub/arm64-stub.c
|
+++ b/drivers/firmware/efi/libstub/arm64-stub.c
|
||||||
@@ -11,6 +11,7 @@
|
@@ -11,6 +11,7 @@
|
||||||
|
@ -60,10 +60,10 @@ index 22ece1ad68a8..897708508909 100644
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
/*
|
/*
|
||||||
* Although relocatable kernels can fix up the misalignment with respect to
|
* Distro versions of GRUB may ignore the BSS allocation entirely (i.e., fail
|
||||||
* MIN_KIMG_ALIGN, the resulting virtual text addresses are subtly out of
|
* to provide space, and fail to zero it). Check for this condition by double
|
||||||
@@ -46,6 +72,19 @@ static u64 min_kimg_align(void)
|
@@ -79,6 +105,19 @@ static bool check_image_region(u64 base, u64 size)
|
||||||
return efi_nokaslr ? MIN_KIMG_ALIGN : EFI_KIMG_ALIGN;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
+static inline efi_status_t efi_low_alloc(unsigned long size, unsigned long align,
|
+static inline efi_status_t efi_low_alloc(unsigned long size, unsigned long align,
|
||||||
|
@ -82,7 +82,7 @@ index 22ece1ad68a8..897708508909 100644
|
||||||
efi_status_t handle_kernel_image(unsigned long *image_addr,
|
efi_status_t handle_kernel_image(unsigned long *image_addr,
|
||||||
unsigned long *image_size,
|
unsigned long *image_size,
|
||||||
unsigned long *reserve_addr,
|
unsigned long *reserve_addr,
|
||||||
@@ -55,6 +94,13 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
@@ -88,6 +127,13 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
||||||
efi_status_t status;
|
efi_status_t status;
|
||||||
unsigned long kernel_size, kernel_memsize = 0;
|
unsigned long kernel_size, kernel_memsize = 0;
|
||||||
u32 phys_seed = 0;
|
u32 phys_seed = 0;
|
||||||
|
@ -94,9 +94,9 @@ index 22ece1ad68a8..897708508909 100644
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) {
|
/*
|
||||||
if (!efi_nokaslr) {
|
* Although relocatable kernels can fix up the misalignment with
|
||||||
@@ -69,7 +115,8 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
@@ -112,7 +158,8 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
||||||
efi_nokaslr = true;
|
efi_nokaslr = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -106,7 +106,7 @@ index 22ece1ad68a8..897708508909 100644
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,6 +138,15 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
@@ -138,6 +185,15 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
||||||
status = EFI_OUT_OF_RESOURCES;
|
status = EFI_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,9 +120,9 @@ index 22ece1ad68a8..897708508909 100644
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
if (status != EFI_SUCCESS) {
|
if (status != EFI_SUCCESS) {
|
||||||
if (IS_ALIGNED((u64)_text, min_kimg_align())) {
|
if (!check_image_region((u64)_text, kernel_memsize)) {
|
||||||
/*
|
efi_err("FIRMWARE BUG: Image BSS overlaps adjacent EFI memory region\n");
|
||||||
@@ -113,6 +169,9 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
@@ -162,6 +218,9 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
||||||
}
|
}
|
||||||
|
|
||||||
*image_addr = *reserve_addr;
|
*image_addr = *reserve_addr;
|
||||||
|
|
Loading…
Add table
Reference in a new issue