mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 07:00:48 +00:00
arm64/efistub: Clean up KASLR logic
Clean up some redundant code in the KASLR placement handling logic. No functional change intended. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
parent
ebf5a79acf
commit
12a01f66f0
@ -21,7 +21,6 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
||||
efi_loaded_image_t *image,
|
||||
efi_handle_t image_handle)
|
||||
{
|
||||
efi_status_t status;
|
||||
unsigned long kernel_size, kernel_codesize, kernel_memsize;
|
||||
|
||||
if (image->image_base != _text) {
|
||||
@ -39,15 +38,9 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
||||
*reserve_size = kernel_memsize;
|
||||
*image_addr = (unsigned long)_text;
|
||||
|
||||
status = efi_kaslr_relocate_kernel(image_addr,
|
||||
reserve_addr, reserve_size,
|
||||
kernel_size, kernel_codesize,
|
||||
kernel_memsize,
|
||||
return efi_kaslr_relocate_kernel(image_addr, reserve_addr, reserve_size,
|
||||
kernel_size, kernel_codesize, kernel_memsize,
|
||||
efi_kaslr_get_phys_seed(image_handle));
|
||||
if (status != EFI_SUCCESS)
|
||||
return status;
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
asmlinkage void primary_entry(void);
|
||||
|
@ -18,8 +18,6 @@
|
||||
*/
|
||||
u32 efi_kaslr_get_phys_seed(efi_handle_t image_handle)
|
||||
{
|
||||
efi_status_t status;
|
||||
u32 phys_seed;
|
||||
efi_guid_t li_fixed_proto = LINUX_EFI_LOADED_IMAGE_FIXED_GUID;
|
||||
void *p;
|
||||
|
||||
@ -32,18 +30,20 @@ u32 efi_kaslr_get_phys_seed(efi_handle_t image_handle)
|
||||
&li_fixed_proto, &p) == EFI_SUCCESS) {
|
||||
efi_info("Image placement fixed by loader\n");
|
||||
} else {
|
||||
efi_status_t status;
|
||||
u32 phys_seed;
|
||||
|
||||
status = efi_get_random_bytes(sizeof(phys_seed),
|
||||
(u8 *)&phys_seed);
|
||||
if (status == EFI_SUCCESS) {
|
||||
if (status == EFI_SUCCESS)
|
||||
return phys_seed;
|
||||
} else if (status == EFI_NOT_FOUND) {
|
||||
|
||||
if (status == EFI_NOT_FOUND)
|
||||
efi_info("EFI_RNG_PROTOCOL unavailable\n");
|
||||
else
|
||||
efi_err("efi_get_random_bytes() failed (0x%lx)\n", status);
|
||||
|
||||
efi_nokaslr = true;
|
||||
} else if (status != EFI_SUCCESS) {
|
||||
efi_err("efi_get_random_bytes() failed (0x%lx)\n",
|
||||
status);
|
||||
efi_nokaslr = true;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user