x86, efi: Make efi_memblock_x86_reserve_range more readable
So basically this function copies EFI memmap stuff from boot_params into the EFI memmap descriptor and reserves memory for it. Make it much more readable. Signed-off-by: Borislav Petkov <bp@suse.de> Cc: Matthew Garret <mjg59@srcf.ucam.org> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
This commit is contained in:
parent
073093819d
commit
15b9c359f2
1 changed files with 10 additions and 9 deletions
|
@ -350,24 +350,25 @@ static void __init do_add_efi_memmap(void)
|
||||||
|
|
||||||
int __init efi_memblock_x86_reserve_range(void)
|
int __init efi_memblock_x86_reserve_range(void)
|
||||||
{
|
{
|
||||||
|
struct efi_info *e = &boot_params.efi_info;
|
||||||
unsigned long pmap;
|
unsigned long pmap;
|
||||||
|
|
||||||
#ifdef CONFIG_X86_32
|
#ifdef CONFIG_X86_32
|
||||||
/* Can't handle data above 4GB at this time */
|
/* Can't handle data above 4GB at this time */
|
||||||
if (boot_params.efi_info.efi_memmap_hi) {
|
if (e->efi_memmap_hi) {
|
||||||
pr_err("Memory map is above 4GB, disabling EFI.\n");
|
pr_err("Memory map is above 4GB, disabling EFI.\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
pmap = boot_params.efi_info.efi_memmap;
|
pmap = e->efi_memmap;
|
||||||
#else
|
#else
|
||||||
pmap = (boot_params.efi_info.efi_memmap |
|
pmap = (e->efi_memmap | ((__u64)e->efi_memmap_hi << 32));
|
||||||
((__u64)boot_params.efi_info.efi_memmap_hi<<32));
|
|
||||||
#endif
|
#endif
|
||||||
memmap.phys_map = (void *)pmap;
|
memmap.phys_map = (void *)pmap;
|
||||||
memmap.nr_map = boot_params.efi_info.efi_memmap_size /
|
memmap.nr_map = e->efi_memmap_size /
|
||||||
boot_params.efi_info.efi_memdesc_size;
|
e->efi_memdesc_size;
|
||||||
memmap.desc_version = boot_params.efi_info.efi_memdesc_version;
|
memmap.desc_size = e->efi_memdesc_size;
|
||||||
memmap.desc_size = boot_params.efi_info.efi_memdesc_size;
|
memmap.desc_version = e->efi_memdesc_version;
|
||||||
|
|
||||||
memblock_reserve(pmap, memmap.nr_map * memmap.desc_size);
|
memblock_reserve(pmap, memmap.nr_map * memmap.desc_size);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue