[IA64] backport EFI version warning fix
authorIsaku Yamahata <yamahata@valinux.co.jp>
Fri, 8 Aug 2008 02:38:17 +0000 (11:38 +0900)
committerIsaku Yamahata <yamahata@valinux.co.jp>
Fri, 8 Aug 2008 02:38:17 +0000 (11:38 +0900)
We have boxes that report EFI version 2.00 now, so adopt upstream linux
patch to only warn on versions less that 1.00.  Based on linux-2.6.git
873ec746158403af82c57ce26780166aafc159e1.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
xen/arch/ia64/linux-xen/efi.c
xen/arch/ia64/xen/dom_fw_common.c
xen/include/asm-ia64/linux-xen/linux/efi.h

index d28fed89b6926c6fb5383096efb808f653caa111..3f0717489c40d5e86c8dda8ddbbc30ab1af1e667 100644 (file)
@@ -539,11 +539,11 @@ efi_init (void)
                panic("Woah! Can't find EFI system table.\n");
        if (efi.systab->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE)
                panic("Woah! EFI system table signature incorrect\n");
-       if ((efi.systab->hdr.revision ^ EFI_SYSTEM_TABLE_REVISION) >> 16 != 0)
-               printk(KERN_WARNING "Warning: EFI system table major version mismatch: "
-                      "got %d.%02d, expected %d.%02d\n",
-                      efi.systab->hdr.revision >> 16, efi.systab->hdr.revision & 0xffff,
-                      EFI_SYSTEM_TABLE_REVISION >> 16, EFI_SYSTEM_TABLE_REVISION & 0xffff);
+       if ((efi.systab->hdr.revision >> 16) == 0)
+               printk(KERN_WARNING "Warning: EFI system table version "
+                      "%d.%02d, expected 1.00 or greater\n",
+                      efi.systab->hdr.revision >> 16,
+                      efi.systab->hdr.revision & 0xffff);
 
        config_tables = __va(efi.systab->tables);
 
index c76a6a3c4bba72d42bc94992765b78d74774cd85..d7929f0dff3b264e5985d5512263a4609375490f 100644 (file)
@@ -416,7 +416,7 @@ dom_fw_init(domain_t *d,
 
        /* EFI systab.  */
        tables->efi_systab.hdr.signature = EFI_SYSTEM_TABLE_SIGNATURE;
-       tables->efi_systab.hdr.revision  = EFI_SYSTEM_TABLE_REVISION;
+       tables->efi_systab.hdr.revision  = ((1 << 16) | 00); /* EFI 1.00 */
        tables->efi_systab.hdr.headersize = sizeof(tables->efi_systab.hdr);
 
        memcpy(tables->fw_vendor,FW_VENDOR,sizeof(FW_VENDOR));
index 02ebb78c9cf9d953ec1b6aab1904d9f48fb9cf66..1cbc86f02b369cf858efcb9e3ae416b4c0ab29ff 100644 (file)
@@ -215,7 +215,6 @@ typedef struct {
 } efi_config_table_t;
 
 #define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)
-#define EFI_SYSTEM_TABLE_REVISION  ((1 << 16) | 00)
 
 typedef struct {
        efi_table_hdr_t hdr;