Commit 12a01f66 authored by Ard Biesheuvel's avatar Ard Biesheuvel

arm64/efistub: Clean up KASLR logic

Clean up some redundant code in the KASLR placement handling logic. No
functional change intended.
Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent ebf5a79a
...@@ -21,7 +21,6 @@ efi_status_t handle_kernel_image(unsigned long *image_addr, ...@@ -21,7 +21,6 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
efi_loaded_image_t *image, efi_loaded_image_t *image,
efi_handle_t image_handle) efi_handle_t image_handle)
{ {
efi_status_t status;
unsigned long kernel_size, kernel_codesize, kernel_memsize; unsigned long kernel_size, kernel_codesize, kernel_memsize;
if (image->image_base != _text) { if (image->image_base != _text) {
...@@ -39,15 +38,9 @@ efi_status_t handle_kernel_image(unsigned long *image_addr, ...@@ -39,15 +38,9 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
*reserve_size = kernel_memsize; *reserve_size = kernel_memsize;
*image_addr = (unsigned long)_text; *image_addr = (unsigned long)_text;
status = efi_kaslr_relocate_kernel(image_addr, return efi_kaslr_relocate_kernel(image_addr, reserve_addr, reserve_size,
reserve_addr, reserve_size, kernel_size, kernel_codesize, kernel_memsize,
kernel_size, kernel_codesize, efi_kaslr_get_phys_seed(image_handle));
kernel_memsize,
efi_kaslr_get_phys_seed(image_handle));
if (status != EFI_SUCCESS)
return status;
return EFI_SUCCESS;
} }
asmlinkage void primary_entry(void); asmlinkage void primary_entry(void);
......
...@@ -18,8 +18,6 @@ ...@@ -18,8 +18,6 @@
*/ */
u32 efi_kaslr_get_phys_seed(efi_handle_t image_handle) 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; efi_guid_t li_fixed_proto = LINUX_EFI_LOADED_IMAGE_FIXED_GUID;
void *p; void *p;
...@@ -32,18 +30,20 @@ u32 efi_kaslr_get_phys_seed(efi_handle_t image_handle) ...@@ -32,18 +30,20 @@ u32 efi_kaslr_get_phys_seed(efi_handle_t image_handle)
&li_fixed_proto, &p) == EFI_SUCCESS) { &li_fixed_proto, &p) == EFI_SUCCESS) {
efi_info("Image placement fixed by loader\n"); efi_info("Image placement fixed by loader\n");
} else { } else {
efi_status_t status;
u32 phys_seed;
status = efi_get_random_bytes(sizeof(phys_seed), status = efi_get_random_bytes(sizeof(phys_seed),
(u8 *)&phys_seed); (u8 *)&phys_seed);
if (status == EFI_SUCCESS) { if (status == EFI_SUCCESS)
return phys_seed; return phys_seed;
} else if (status == EFI_NOT_FOUND) {
if (status == EFI_NOT_FOUND)
efi_info("EFI_RNG_PROTOCOL unavailable\n"); efi_info("EFI_RNG_PROTOCOL unavailable\n");
efi_nokaslr = true; else
} else if (status != EFI_SUCCESS) { efi_err("efi_get_random_bytes() failed (0x%lx)\n", status);
efi_err("efi_get_random_bytes() failed (0x%lx)\n",
status); efi_nokaslr = true;
efi_nokaslr = true;
}
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment