Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit 12a01f6

Browse files
committed
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>
1 parent ebf5a79 commit 12a01f6

File tree

2 files changed

+13
-20
lines changed

2 files changed

+13
-20
lines changed

drivers/firmware/efi/libstub/arm64-stub.c

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
2121
efi_loaded_image_t *image,
2222
efi_handle_t image_handle)
2323
{
24-
efi_status_t status;
2524
unsigned long kernel_size, kernel_codesize, kernel_memsize;
2625

2726
if (image->image_base != _text) {
@@ -39,15 +38,9 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
3938
*reserve_size = kernel_memsize;
4039
*image_addr = (unsigned long)_text;
4140

42-
status = efi_kaslr_relocate_kernel(image_addr,
43-
reserve_addr, reserve_size,
44-
kernel_size, kernel_codesize,
45-
kernel_memsize,
46-
efi_kaslr_get_phys_seed(image_handle));
47-
if (status != EFI_SUCCESS)
48-
return status;
49-
50-
return EFI_SUCCESS;
41+
return efi_kaslr_relocate_kernel(image_addr, reserve_addr, reserve_size,
42+
kernel_size, kernel_codesize, kernel_memsize,
43+
efi_kaslr_get_phys_seed(image_handle));
5144
}
5245

5346
asmlinkage void primary_entry(void);

drivers/firmware/efi/libstub/kaslr.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
*/
1919
u32 efi_kaslr_get_phys_seed(efi_handle_t image_handle)
2020
{
21-
efi_status_t status;
22-
u32 phys_seed;
2321
efi_guid_t li_fixed_proto = LINUX_EFI_LOADED_IMAGE_FIXED_GUID;
2422
void *p;
2523

@@ -32,18 +30,20 @@ u32 efi_kaslr_get_phys_seed(efi_handle_t image_handle)
3230
&li_fixed_proto, &p) == EFI_SUCCESS) {
3331
efi_info("Image placement fixed by loader\n");
3432
} else {
33+
efi_status_t status;
34+
u32 phys_seed;
35+
3536
status = efi_get_random_bytes(sizeof(phys_seed),
3637
(u8 *)&phys_seed);
37-
if (status == EFI_SUCCESS) {
38+
if (status == EFI_SUCCESS)
3839
return phys_seed;
39-
} else if (status == EFI_NOT_FOUND) {
40+
41+
if (status == EFI_NOT_FOUND)
4042
efi_info("EFI_RNG_PROTOCOL unavailable\n");
41-
efi_nokaslr = true;
42-
} else if (status != EFI_SUCCESS) {
43-
efi_err("efi_get_random_bytes() failed (0x%lx)\n",
44-
status);
45-
efi_nokaslr = true;
46-
}
43+
else
44+
efi_err("efi_get_random_bytes() failed (0x%lx)\n", status);
45+
46+
efi_nokaslr = true;
4747
}
4848

4949
return 0;

0 commit comments

Comments
 (0)