diff options
-rw-r--r-- | arch/i386/kernel/efi.c | 12 | ||||
-rw-r--r-- | arch/ia64/hp/sim/boot/fw-emu.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/efi.c | 10 | ||||
-rw-r--r-- | include/linux/efi.h | 1 |
4 files changed, 11 insertions, 14 deletions
diff --git a/arch/i386/kernel/efi.c b/arch/i386/kernel/efi.c index dd9e7faafa7c..a1808022ea19 100644 --- a/arch/i386/kernel/efi.c +++ b/arch/i386/kernel/efi.c | |||
@@ -347,14 +347,12 @@ void __init efi_init(void) | |||
347 | printk(KERN_ERR PFX "Woah! Couldn't map the EFI system table.\n"); | 347 | printk(KERN_ERR PFX "Woah! Couldn't map the EFI system table.\n"); |
348 | if (efi.systab->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE) | 348 | if (efi.systab->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE) |
349 | printk(KERN_ERR PFX "Woah! EFI system table signature incorrect\n"); | 349 | printk(KERN_ERR PFX "Woah! EFI system table signature incorrect\n"); |
350 | if ((efi.systab->hdr.revision ^ EFI_SYSTEM_TABLE_REVISION) >> 16 != 0) | 350 | if ((efi.systab->hdr.revision >> 16) == 0) |
351 | printk(KERN_ERR PFX | 351 | printk(KERN_ERR PFX "Warning: EFI system table version " |
352 | "Warning: EFI system table major version mismatch: " | 352 | "%d.%02d, expected 1.00 or greater\n", |
353 | "got %d.%02d, expected %d.%02d\n", | ||
354 | efi.systab->hdr.revision >> 16, | 353 | efi.systab->hdr.revision >> 16, |
355 | efi.systab->hdr.revision & 0xffff, | 354 | efi.systab->hdr.revision & 0xffff); |
356 | EFI_SYSTEM_TABLE_REVISION >> 16, | 355 | |
357 | EFI_SYSTEM_TABLE_REVISION & 0xffff); | ||
358 | /* | 356 | /* |
359 | * Grab some details from the system table | 357 | * Grab some details from the system table |
360 | */ | 358 | */ |
diff --git a/arch/ia64/hp/sim/boot/fw-emu.c b/arch/ia64/hp/sim/boot/fw-emu.c index 5a0a7afcfc3a..300acd913d9c 100644 --- a/arch/ia64/hp/sim/boot/fw-emu.c +++ b/arch/ia64/hp/sim/boot/fw-emu.c | |||
@@ -287,7 +287,7 @@ sys_fw_init (const char *args, int arglen) | |||
287 | 287 | ||
288 | memset(efi_systab, 0, sizeof(efi_systab)); | 288 | memset(efi_systab, 0, sizeof(efi_systab)); |
289 | efi_systab->hdr.signature = EFI_SYSTEM_TABLE_SIGNATURE; | 289 | efi_systab->hdr.signature = EFI_SYSTEM_TABLE_SIGNATURE; |
290 | efi_systab->hdr.revision = EFI_SYSTEM_TABLE_REVISION; | 290 | efi_systab->hdr.revision = ((1 << 16) | 00); |
291 | efi_systab->hdr.headersize = sizeof(efi_systab->hdr); | 291 | efi_systab->hdr.headersize = sizeof(efi_systab->hdr); |
292 | efi_systab->fw_vendor = __pa("H\0e\0w\0l\0e\0t\0t\0-\0P\0a\0c\0k\0a\0r\0d\0\0"); | 292 | efi_systab->fw_vendor = __pa("H\0e\0w\0l\0e\0t\0t\0-\0P\0a\0c\0k\0a\0r\0d\0\0"); |
293 | efi_systab->fw_revision = 1; | 293 | efi_systab->fw_revision = 1; |
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index 78d29b79947d..75ec3478d8a2 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c | |||
@@ -445,11 +445,11 @@ efi_init (void) | |||
445 | panic("Woah! Can't find EFI system table.\n"); | 445 | panic("Woah! Can't find EFI system table.\n"); |
446 | if (efi.systab->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE) | 446 | if (efi.systab->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE) |
447 | panic("Woah! EFI system table signature incorrect\n"); | 447 | panic("Woah! EFI system table signature incorrect\n"); |
448 | if ((efi.systab->hdr.revision ^ EFI_SYSTEM_TABLE_REVISION) >> 16 != 0) | 448 | if ((efi.systab->hdr.revision >> 16) == 0) |
449 | printk(KERN_WARNING "Warning: EFI system table major version mismatch: " | 449 | printk(KERN_WARNING "Warning: EFI system table version " |
450 | "got %d.%02d, expected %d.%02d\n", | 450 | "%d.%02d, expected 1.00 or greater\n", |
451 | efi.systab->hdr.revision >> 16, efi.systab->hdr.revision & 0xffff, | 451 | efi.systab->hdr.revision >> 16, |
452 | EFI_SYSTEM_TABLE_REVISION >> 16, EFI_SYSTEM_TABLE_REVISION & 0xffff); | 452 | efi.systab->hdr.revision & 0xffff); |
453 | 453 | ||
454 | config_tables = __va(efi.systab->tables); | 454 | config_tables = __va(efi.systab->tables); |
455 | 455 | ||
diff --git a/include/linux/efi.h b/include/linux/efi.h index f8ebd7c1ddb3..0b9579a4cd42 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h | |||
@@ -213,7 +213,6 @@ typedef struct { | |||
213 | } efi_config_table_t; | 213 | } efi_config_table_t; |
214 | 214 | ||
215 | #define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL) | 215 | #define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL) |
216 | #define EFI_SYSTEM_TABLE_REVISION ((1 << 16) | 00) | ||
217 | 216 | ||
218 | typedef struct { | 217 | typedef struct { |
219 | efi_table_hdr_t hdr; | 218 | efi_table_hdr_t hdr; |