summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/firmware/efi/efi-bgrt.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/firmware/efi/efi-bgrt.c b/drivers/firmware/efi/efi-bgrt.c
index 6aafdb67dbca..1da451582812 100644
--- a/drivers/firmware/efi/efi-bgrt.c
+++ b/drivers/firmware/efi/efi-bgrt.c
@@ -29,11 +29,12 @@ void __init efi_bgrt_init(struct acpi_table_header *table)
void *image;
struct bmp_header bmp_header;
struct acpi_table_bgrt *bgrt = &bgrt_tab;
+ int mem_type;
if (acpi_disabled)
return;
- if (!efi_enabled(EFI_MEMMAP))
+ if (!efi_enabled(EFI_MEMMAP) && !efi_enabled(EFI_PARAVIRT))
return;
if (table->length < sizeof(bgrt_tab)) {
@@ -62,7 +63,9 @@ void __init efi_bgrt_init(struct acpi_table_header *table)
goto out;
}
- if (efi_mem_type(bgrt->image_address) != EFI_BOOT_SERVICES_DATA) {
+ mem_type = efi_mem_type(bgrt->image_address);
+ if (mem_type != EFI_BOOT_SERVICES_DATA &&
+ mem_type != EFI_ACPI_RECLAIM_MEMORY) {
pr_notice("Ignoring BGRT: invalid image address\n");
goto out;
}