aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIsaku Yamahata <yamahata@valinux.co.jp>2008-08-08 11:38:17 +0900
committerIsaku Yamahata <yamahata@valinux.co.jp>2008-08-08 11:38:17 +0900
commitbd2f7cf2517f7839367859ccf7434d4085d3386a (patch)
tree098db8fcd6f2f98507a179f34b7309a383655b88
parent283fe01effc343e25125b10902525a2f2ef87711 (diff)
downloadxen-bd2f7cf2517f7839367859ccf7434d4085d3386a.tar.gz
xen-bd2f7cf2517f7839367859ccf7434d4085d3386a.tar.bz2
xen-bd2f7cf2517f7839367859ccf7434d4085d3386a.zip
[IA64] backport EFI version warning fix
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>
-rw-r--r--xen/arch/ia64/linux-xen/efi.c10
-rw-r--r--xen/arch/ia64/xen/dom_fw_common.c2
-rw-r--r--xen/include/asm-ia64/linux-xen/linux/efi.h1
3 files changed, 6 insertions, 7 deletions
diff --git a/xen/arch/ia64/linux-xen/efi.c b/xen/arch/ia64/linux-xen/efi.c
index d28fed89b6..3f0717489c 100644
--- a/xen/arch/ia64/linux-xen/efi.c
+++ b/xen/arch/ia64/linux-xen/efi.c
@@ -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);
diff --git a/xen/arch/ia64/xen/dom_fw_common.c b/xen/arch/ia64/xen/dom_fw_common.c
index c76a6a3c4b..d7929f0dff 100644
--- a/xen/arch/ia64/xen/dom_fw_common.c
+++ b/xen/arch/ia64/xen/dom_fw_common.c
@@ -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));
diff --git a/xen/include/asm-ia64/linux-xen/linux/efi.h b/xen/include/asm-ia64/linux-xen/linux/efi.h
index 02ebb78c9c..1cbc86f02b 100644
--- a/xen/include/asm-ia64/linux-xen/linux/efi.h
+++ b/xen/include/asm-ia64/linux-xen/linux/efi.h
@@ -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;