|
@@ -27,26 +27,6 @@ struct bmp_header {
|
|
|
u32 size;
|
|
|
} __packed;
|
|
|
|
|
|
-static bool efi_bgrt_addr_valid(u64 addr)
|
|
|
-{
|
|
|
- efi_memory_desc_t *md;
|
|
|
-
|
|
|
- for_each_efi_memory_desc(md) {
|
|
|
- u64 size;
|
|
|
- u64 end;
|
|
|
-
|
|
|
- if (md->type != EFI_BOOT_SERVICES_DATA)
|
|
|
- continue;
|
|
|
-
|
|
|
- size = md->num_pages << EFI_PAGE_SHIFT;
|
|
|
- end = md->phys_addr + size;
|
|
|
- if (addr >= md->phys_addr && addr < end)
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- return false;
|
|
|
-}
|
|
|
-
|
|
|
void __init efi_bgrt_init(struct acpi_table_header *table)
|
|
|
{
|
|
|
void *image;
|
|
@@ -85,7 +65,7 @@ void __init efi_bgrt_init(struct acpi_table_header *table)
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- if (!efi_bgrt_addr_valid(bgrt->image_address)) {
|
|
|
+ if (efi_mem_type(bgrt->image_address) != EFI_BOOT_SERVICES_DATA) {
|
|
|
pr_notice("Ignoring BGRT: invalid image address\n");
|
|
|
goto out;
|
|
|
}
|