Commit 55087c57 authored by Hans de Goede's avatar Hans de Goede Committed by Ard Biesheuvel

efi/bgrt: Accept BGRT tables with a version of 0

Some (somewhat older) laptops have a correct BGRT table, except that the
version field is 0 instead of 1.

This has been seen on several Ivy Bridge based Lenovo models.

For now the spec. only defines version 1, so it is reasonably safe to
assume that tables with a version of 0 really are version 1 too,
which is what this commit does so that the BGRT table will be accepted
by the kernel on laptop models with this issue.
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20200131130623.33875-1-hdegoede@redhat.comSigned-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent f32ea1cd
...@@ -42,7 +42,12 @@ void __init efi_bgrt_init(struct acpi_table_header *table) ...@@ -42,7 +42,12 @@ void __init efi_bgrt_init(struct acpi_table_header *table)
return; return;
} }
*bgrt = *(struct acpi_table_bgrt *)table; *bgrt = *(struct acpi_table_bgrt *)table;
if (bgrt->version != 1) { /*
* Only version 1 is defined but some older laptops (seen on Lenovo
* Ivy Bridge models) have a correct version 1 BGRT table with the
* version set to 0, so we accept version 0 and 1.
*/
if (bgrt->version > 1) {
pr_notice("Ignoring BGRT: invalid version %u (expected 1)\n", pr_notice("Ignoring BGRT: invalid version %u (expected 1)\n",
bgrt->version); bgrt->version);
goto out; goto out;
......
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