diff options
-rw-r--r-- | arch/i386/kernel/acpi/boot.c | 8 | ||||
-rw-r--r-- | arch/i386/kernel/dmi_scan.c | 4 | ||||
-rw-r--r-- | arch/i386/kernel/efi.c | 21 | ||||
-rw-r--r-- | arch/ia64/kernel/acpi.c | 6 | ||||
-rw-r--r-- | arch/ia64/kernel/efi.c | 21 | ||||
-rw-r--r-- | arch/ia64/kernel/setup.c | 2 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/setup.c | 5 | ||||
-rw-r--r-- | drivers/acpi/osl.c | 10 | ||||
-rw-r--r-- | drivers/firmware/efivars.c | 28 | ||||
-rw-r--r-- | drivers/firmware/pcdp.c | 19 | ||||
-rw-r--r-- | include/asm-ia64/sn/sn_sal.h | 2 | ||||
-rw-r--r-- | include/linux/efi.h | 18 |
12 files changed, 84 insertions, 60 deletions
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c index f1a21945963d..033066176b3e 100644 --- a/arch/i386/kernel/acpi/boot.c +++ b/arch/i386/kernel/acpi/boot.c | |||
@@ -668,10 +668,10 @@ unsigned long __init acpi_find_rsdp(void) | |||
668 | unsigned long rsdp_phys = 0; | 668 | unsigned long rsdp_phys = 0; |
669 | 669 | ||
670 | if (efi_enabled) { | 670 | if (efi_enabled) { |
671 | if (efi.acpi20) | 671 | if (efi.acpi20 != EFI_INVALID_TABLE_ADDR) |
672 | return __pa(efi.acpi20); | 672 | return efi.acpi20; |
673 | else if (efi.acpi) | 673 | else if (efi.acpi != EFI_INVALID_TABLE_ADDR) |
674 | return __pa(efi.acpi); | 674 | return efi.acpi; |
675 | } | 675 | } |
676 | /* | 676 | /* |
677 | * Scan memory looking for the RSDP signature. First search EBDA (low | 677 | * Scan memory looking for the RSDP signature. First search EBDA (low |
diff --git a/arch/i386/kernel/dmi_scan.c b/arch/i386/kernel/dmi_scan.c index c032f9e06bb6..170d4c9f9bc3 100644 --- a/arch/i386/kernel/dmi_scan.c +++ b/arch/i386/kernel/dmi_scan.c | |||
@@ -217,14 +217,14 @@ void __init dmi_scan_machine(void) | |||
217 | int rc; | 217 | int rc; |
218 | 218 | ||
219 | if (efi_enabled) { | 219 | if (efi_enabled) { |
220 | if (!efi.smbios) | 220 | if (efi.smbios == EFI_INVALID_TABLE_ADDR) |
221 | goto out; | 221 | goto out; |
222 | 222 | ||
223 | /* This is called as a core_initcall() because it isn't | 223 | /* This is called as a core_initcall() because it isn't |
224 | * needed during early boot. This also means we can | 224 | * needed during early boot. This also means we can |
225 | * iounmap the space when we're done with it. | 225 | * iounmap the space when we're done with it. |
226 | */ | 226 | */ |
227 | p = dmi_ioremap((unsigned long)efi.smbios, 32); | 227 | p = dmi_ioremap(efi.smbios, 32); |
228 | if (p == NULL) | 228 | if (p == NULL) |
229 | goto out; | 229 | goto out; |
230 | 230 | ||
diff --git a/arch/i386/kernel/efi.c b/arch/i386/kernel/efi.c index 7ec6cfa01fb3..c224c2aebbab 100644 --- a/arch/i386/kernel/efi.c +++ b/arch/i386/kernel/efi.c | |||
@@ -381,29 +381,38 @@ void __init efi_init(void) | |||
381 | if (config_tables == NULL) | 381 | if (config_tables == NULL) |
382 | printk(KERN_ERR PFX "Could not map EFI Configuration Table!\n"); | 382 | printk(KERN_ERR PFX "Could not map EFI Configuration Table!\n"); |
383 | 383 | ||
384 | efi.mps = EFI_INVALID_TABLE_ADDR; | ||
385 | efi.acpi = EFI_INVALID_TABLE_ADDR; | ||
386 | efi.acpi20 = EFI_INVALID_TABLE_ADDR; | ||
387 | efi.smbios = EFI_INVALID_TABLE_ADDR; | ||
388 | efi.sal_systab = EFI_INVALID_TABLE_ADDR; | ||
389 | efi.boot_info = EFI_INVALID_TABLE_ADDR; | ||
390 | efi.hcdp = EFI_INVALID_TABLE_ADDR; | ||
391 | efi.uga = EFI_INVALID_TABLE_ADDR; | ||
392 | |||
384 | for (i = 0; i < num_config_tables; i++) { | 393 | for (i = 0; i < num_config_tables; i++) { |
385 | if (efi_guidcmp(config_tables[i].guid, MPS_TABLE_GUID) == 0) { | 394 | if (efi_guidcmp(config_tables[i].guid, MPS_TABLE_GUID) == 0) { |
386 | efi.mps = (void *)config_tables[i].table; | 395 | efi.mps = config_tables[i].table; |
387 | printk(KERN_INFO " MPS=0x%lx ", config_tables[i].table); | 396 | printk(KERN_INFO " MPS=0x%lx ", config_tables[i].table); |
388 | } else | 397 | } else |
389 | if (efi_guidcmp(config_tables[i].guid, ACPI_20_TABLE_GUID) == 0) { | 398 | if (efi_guidcmp(config_tables[i].guid, ACPI_20_TABLE_GUID) == 0) { |
390 | efi.acpi20 = __va(config_tables[i].table); | 399 | efi.acpi20 = config_tables[i].table; |
391 | printk(KERN_INFO " ACPI 2.0=0x%lx ", config_tables[i].table); | 400 | printk(KERN_INFO " ACPI 2.0=0x%lx ", config_tables[i].table); |
392 | } else | 401 | } else |
393 | if (efi_guidcmp(config_tables[i].guid, ACPI_TABLE_GUID) == 0) { | 402 | if (efi_guidcmp(config_tables[i].guid, ACPI_TABLE_GUID) == 0) { |
394 | efi.acpi = __va(config_tables[i].table); | 403 | efi.acpi = config_tables[i].table; |
395 | printk(KERN_INFO " ACPI=0x%lx ", config_tables[i].table); | 404 | printk(KERN_INFO " ACPI=0x%lx ", config_tables[i].table); |
396 | } else | 405 | } else |
397 | if (efi_guidcmp(config_tables[i].guid, SMBIOS_TABLE_GUID) == 0) { | 406 | if (efi_guidcmp(config_tables[i].guid, SMBIOS_TABLE_GUID) == 0) { |
398 | efi.smbios = (void *) config_tables[i].table; | 407 | efi.smbios = config_tables[i].table; |
399 | printk(KERN_INFO " SMBIOS=0x%lx ", config_tables[i].table); | 408 | printk(KERN_INFO " SMBIOS=0x%lx ", config_tables[i].table); |
400 | } else | 409 | } else |
401 | if (efi_guidcmp(config_tables[i].guid, HCDP_TABLE_GUID) == 0) { | 410 | if (efi_guidcmp(config_tables[i].guid, HCDP_TABLE_GUID) == 0) { |
402 | efi.hcdp = (void *)config_tables[i].table; | 411 | efi.hcdp = config_tables[i].table; |
403 | printk(KERN_INFO " HCDP=0x%lx ", config_tables[i].table); | 412 | printk(KERN_INFO " HCDP=0x%lx ", config_tables[i].table); |
404 | } else | 413 | } else |
405 | if (efi_guidcmp(config_tables[i].guid, UGA_IO_PROTOCOL_GUID) == 0) { | 414 | if (efi_guidcmp(config_tables[i].guid, UGA_IO_PROTOCOL_GUID) == 0) { |
406 | efi.uga = (void *)config_tables[i].table; | 415 | efi.uga = config_tables[i].table; |
407 | printk(KERN_INFO " UGA=0x%lx ", config_tables[i].table); | 416 | printk(KERN_INFO " UGA=0x%lx ", config_tables[i].table); |
408 | } | 417 | } |
409 | } | 418 | } |
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index a4e218ce2edb..58c93a30348c 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -651,9 +651,9 @@ unsigned long __init acpi_find_rsdp(void) | |||
651 | { | 651 | { |
652 | unsigned long rsdp_phys = 0; | 652 | unsigned long rsdp_phys = 0; |
653 | 653 | ||
654 | if (efi.acpi20) | 654 | if (efi.acpi20 != EFI_INVALID_TABLE_ADDR) |
655 | rsdp_phys = __pa(efi.acpi20); | 655 | rsdp_phys = efi.acpi20; |
656 | else if (efi.acpi) | 656 | else if (efi.acpi != EFI_INVALID_TABLE_ADDR) |
657 | printk(KERN_WARNING PREFIX | 657 | printk(KERN_WARNING PREFIX |
658 | "v1.0/r0.71 tables no longer supported\n"); | 658 | "v1.0/r0.71 tables no longer supported\n"); |
659 | return rsdp_phys; | 659 | return rsdp_phys; |
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index 2993748c13df..12cfedce73b1 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c | |||
@@ -458,24 +458,33 @@ efi_init (void) | |||
458 | printk(KERN_INFO "EFI v%u.%.02u by %s:", | 458 | printk(KERN_INFO "EFI v%u.%.02u by %s:", |
459 | efi.systab->hdr.revision >> 16, efi.systab->hdr.revision & 0xffff, vendor); | 459 | efi.systab->hdr.revision >> 16, efi.systab->hdr.revision & 0xffff, vendor); |
460 | 460 | ||
461 | efi.mps = EFI_INVALID_TABLE_ADDR; | ||
462 | efi.acpi = EFI_INVALID_TABLE_ADDR; | ||
463 | efi.acpi20 = EFI_INVALID_TABLE_ADDR; | ||
464 | efi.smbios = EFI_INVALID_TABLE_ADDR; | ||
465 | efi.sal_systab = EFI_INVALID_TABLE_ADDR; | ||
466 | efi.boot_info = EFI_INVALID_TABLE_ADDR; | ||
467 | efi.hcdp = EFI_INVALID_TABLE_ADDR; | ||
468 | efi.uga = EFI_INVALID_TABLE_ADDR; | ||
469 | |||
461 | for (i = 0; i < (int) efi.systab->nr_tables; i++) { | 470 | for (i = 0; i < (int) efi.systab->nr_tables; i++) { |
462 | if (efi_guidcmp(config_tables[i].guid, MPS_TABLE_GUID) == 0) { | 471 | if (efi_guidcmp(config_tables[i].guid, MPS_TABLE_GUID) == 0) { |
463 | efi.mps = __va(config_tables[i].table); | 472 | efi.mps = config_tables[i].table; |
464 | printk(" MPS=0x%lx", config_tables[i].table); | 473 | printk(" MPS=0x%lx", config_tables[i].table); |
465 | } else if (efi_guidcmp(config_tables[i].guid, ACPI_20_TABLE_GUID) == 0) { | 474 | } else if (efi_guidcmp(config_tables[i].guid, ACPI_20_TABLE_GUID) == 0) { |
466 | efi.acpi20 = __va(config_tables[i].table); | 475 | efi.acpi20 = config_tables[i].table; |
467 | printk(" ACPI 2.0=0x%lx", config_tables[i].table); | 476 | printk(" ACPI 2.0=0x%lx", config_tables[i].table); |
468 | } else if (efi_guidcmp(config_tables[i].guid, ACPI_TABLE_GUID) == 0) { | 477 | } else if (efi_guidcmp(config_tables[i].guid, ACPI_TABLE_GUID) == 0) { |
469 | efi.acpi = __va(config_tables[i].table); | 478 | efi.acpi = config_tables[i].table; |
470 | printk(" ACPI=0x%lx", config_tables[i].table); | 479 | printk(" ACPI=0x%lx", config_tables[i].table); |
471 | } else if (efi_guidcmp(config_tables[i].guid, SMBIOS_TABLE_GUID) == 0) { | 480 | } else if (efi_guidcmp(config_tables[i].guid, SMBIOS_TABLE_GUID) == 0) { |
472 | efi.smbios = __va(config_tables[i].table); | 481 | efi.smbios = config_tables[i].table; |
473 | printk(" SMBIOS=0x%lx", config_tables[i].table); | 482 | printk(" SMBIOS=0x%lx", config_tables[i].table); |
474 | } else if (efi_guidcmp(config_tables[i].guid, SAL_SYSTEM_TABLE_GUID) == 0) { | 483 | } else if (efi_guidcmp(config_tables[i].guid, SAL_SYSTEM_TABLE_GUID) == 0) { |
475 | efi.sal_systab = __va(config_tables[i].table); | 484 | efi.sal_systab = config_tables[i].table; |
476 | printk(" SALsystab=0x%lx", config_tables[i].table); | 485 | printk(" SALsystab=0x%lx", config_tables[i].table); |
477 | } else if (efi_guidcmp(config_tables[i].guid, HCDP_TABLE_GUID) == 0) { | 486 | } else if (efi_guidcmp(config_tables[i].guid, HCDP_TABLE_GUID) == 0) { |
478 | efi.hcdp = __va(config_tables[i].table); | 487 | efi.hcdp = config_tables[i].table; |
479 | printk(" HCDP=0x%lx", config_tables[i].table); | 488 | printk(" HCDP=0x%lx", config_tables[i].table); |
480 | } | 489 | } |
481 | } | 490 | } |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index a4421a66ea5b..e4dfda1eb7dd 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -434,7 +434,7 @@ setup_arch (char **cmdline_p) | |||
434 | find_memory(); | 434 | find_memory(); |
435 | 435 | ||
436 | /* process SAL system table: */ | 436 | /* process SAL system table: */ |
437 | ia64_sal_init(efi.sal_systab); | 437 | ia64_sal_init(__va(efi.sal_systab)); |
438 | 438 | ||
439 | ia64_setup_printk_clock(); | 439 | ia64_setup_printk_clock(); |
440 | 440 | ||
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c index 8b6d5c844708..30988dfbddff 100644 --- a/arch/ia64/sn/kernel/setup.c +++ b/arch/ia64/sn/kernel/setup.c | |||
@@ -327,10 +327,11 @@ sn_scan_pcdp(void) | |||
327 | struct pcdp_interface_pci if_pci; | 327 | struct pcdp_interface_pci if_pci; |
328 | extern struct efi efi; | 328 | extern struct efi efi; |
329 | 329 | ||
330 | pcdp = efi.hcdp; | 330 | if (efi.hcdp == EFI_INVALID_TABLE_ADDR) |
331 | if (! pcdp) | ||
332 | return; /* no hcdp/pcdp table */ | 331 | return; /* no hcdp/pcdp table */ |
333 | 332 | ||
333 | pcdp = __va(efi.hcdp); | ||
334 | |||
334 | if (pcdp->rev < 3) | 335 | if (pcdp->rev < 3) |
335 | return; /* only support PCDP (rev >= 3) */ | 336 | return; /* only support PCDP (rev >= 3) */ |
336 | 337 | ||
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index ac5bbaedac1b..fc8a3bce6cbb 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
@@ -156,12 +156,10 @@ acpi_status acpi_os_get_root_pointer(u32 flags, struct acpi_pointer *addr) | |||
156 | { | 156 | { |
157 | if (efi_enabled) { | 157 | if (efi_enabled) { |
158 | addr->pointer_type = ACPI_PHYSICAL_POINTER; | 158 | addr->pointer_type = ACPI_PHYSICAL_POINTER; |
159 | if (efi.acpi20) | 159 | if (efi.acpi20 != EFI_INVALID_TABLE_ADDR) |
160 | addr->pointer.physical = | 160 | addr->pointer.physical = efi.acpi20; |
161 | (acpi_physical_address) virt_to_phys(efi.acpi20); | 161 | else if (efi.acpi != EFI_INVALID_TABLE_ADDR) |
162 | else if (efi.acpi) | 162 | addr->pointer.physical = efi.acpi; |
163 | addr->pointer.physical = | ||
164 | (acpi_physical_address) virt_to_phys(efi.acpi); | ||
165 | else { | 163 | else { |
166 | printk(KERN_ERR PREFIX | 164 | printk(KERN_ERR PREFIX |
167 | "System description tables not found\n"); | 165 | "System description tables not found\n"); |
diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c index 343379f23a53..9b7e4d52ffd4 100644 --- a/drivers/firmware/efivars.c +++ b/drivers/firmware/efivars.c | |||
@@ -568,20 +568,20 @@ systab_read(struct subsystem *entry, char *buf) | |||
568 | if (!entry || !buf) | 568 | if (!entry || !buf) |
569 | return -EINVAL; | 569 | return -EINVAL; |
570 | 570 | ||
571 | if (efi.mps) | 571 | if (efi.mps != EFI_INVALID_TABLE_ADDR) |
572 | str += sprintf(str, "MPS=0x%lx\n", __pa(efi.mps)); | 572 | str += sprintf(str, "MPS=0x%lx\n", efi.mps); |
573 | if (efi.acpi20) | 573 | if (efi.acpi20 != EFI_INVALID_TABLE_ADDR) |
574 | str += sprintf(str, "ACPI20=0x%lx\n", __pa(efi.acpi20)); | 574 | str += sprintf(str, "ACPI20=0x%lx\n", efi.acpi20); |
575 | if (efi.acpi) | 575 | if (efi.acpi != EFI_INVALID_TABLE_ADDR) |
576 | str += sprintf(str, "ACPI=0x%lx\n", __pa(efi.acpi)); | 576 | str += sprintf(str, "ACPI=0x%lx\n", efi.acpi); |
577 | if (efi.smbios) | 577 | if (efi.smbios != EFI_INVALID_TABLE_ADDR) |
578 | str += sprintf(str, "SMBIOS=0x%lx\n", __pa(efi.smbios)); | 578 | str += sprintf(str, "SMBIOS=0x%lx\n", efi.smbios); |
579 | if (efi.hcdp) | 579 | if (efi.hcdp != EFI_INVALID_TABLE_ADDR) |
580 | str += sprintf(str, "HCDP=0x%lx\n", __pa(efi.hcdp)); | 580 | str += sprintf(str, "HCDP=0x%lx\n", efi.hcdp); |
581 | if (efi.boot_info) | 581 | if (efi.boot_info != EFI_INVALID_TABLE_ADDR) |
582 | str += sprintf(str, "BOOTINFO=0x%lx\n", __pa(efi.boot_info)); | 582 | str += sprintf(str, "BOOTINFO=0x%lx\n", efi.boot_info); |
583 | if (efi.uga) | 583 | if (efi.uga != EFI_INVALID_TABLE_ADDR) |
584 | str += sprintf(str, "UGA=0x%lx\n", __pa(efi.uga)); | 584 | str += sprintf(str, "UGA=0x%lx\n", efi.uga); |
585 | 585 | ||
586 | return str - buf; | 586 | return str - buf; |
587 | } | 587 | } |
diff --git a/drivers/firmware/pcdp.c b/drivers/firmware/pcdp.c index ae1fb45dbb40..c37baf9448bc 100644 --- a/drivers/firmware/pcdp.c +++ b/drivers/firmware/pcdp.c | |||
@@ -89,19 +89,20 @@ efi_setup_pcdp_console(char *cmdline) | |||
89 | struct pcdp_uart *uart; | 89 | struct pcdp_uart *uart; |
90 | struct pcdp_device *dev, *end; | 90 | struct pcdp_device *dev, *end; |
91 | int i, serial = 0; | 91 | int i, serial = 0; |
92 | int rc = -ENODEV; | ||
92 | 93 | ||
93 | pcdp = efi.hcdp; | 94 | if (efi.hcdp == EFI_INVALID_TABLE_ADDR) |
94 | if (!pcdp) | ||
95 | return -ENODEV; | 95 | return -ENODEV; |
96 | 96 | ||
97 | printk(KERN_INFO "PCDP: v%d at 0x%lx\n", pcdp->rev, __pa(pcdp)); | 97 | pcdp = ioremap(efi.hcdp, 4096); |
98 | printk(KERN_INFO "PCDP: v%d at 0x%lx\n", pcdp->rev, efi.hcdp); | ||
98 | 99 | ||
99 | if (strstr(cmdline, "console=hcdp")) { | 100 | if (strstr(cmdline, "console=hcdp")) { |
100 | if (pcdp->rev < 3) | 101 | if (pcdp->rev < 3) |
101 | serial = 1; | 102 | serial = 1; |
102 | } else if (strstr(cmdline, "console=")) { | 103 | } else if (strstr(cmdline, "console=")) { |
103 | printk(KERN_INFO "Explicit \"console=\"; ignoring PCDP\n"); | 104 | printk(KERN_INFO "Explicit \"console=\"; ignoring PCDP\n"); |
104 | return -ENODEV; | 105 | goto out; |
105 | } | 106 | } |
106 | 107 | ||
107 | if (pcdp->rev < 3 && efi_uart_console_only()) | 108 | if (pcdp->rev < 3 && efi_uart_console_only()) |
@@ -110,7 +111,8 @@ efi_setup_pcdp_console(char *cmdline) | |||
110 | for (i = 0, uart = pcdp->uart; i < pcdp->num_uarts; i++, uart++) { | 111 | for (i = 0, uart = pcdp->uart; i < pcdp->num_uarts; i++, uart++) { |
111 | if (uart->flags & PCDP_UART_PRIMARY_CONSOLE || serial) { | 112 | if (uart->flags & PCDP_UART_PRIMARY_CONSOLE || serial) { |
112 | if (uart->type == PCDP_CONSOLE_UART) { | 113 | if (uart->type == PCDP_CONSOLE_UART) { |
113 | return setup_serial_console(uart); | 114 | rc = setup_serial_console(uart); |
115 | goto out; | ||
114 | } | 116 | } |
115 | } | 117 | } |
116 | } | 118 | } |
@@ -121,10 +123,13 @@ efi_setup_pcdp_console(char *cmdline) | |||
121 | dev = (struct pcdp_device *) ((u8 *) dev + dev->length)) { | 123 | dev = (struct pcdp_device *) ((u8 *) dev + dev->length)) { |
122 | if (dev->flags & PCDP_PRIMARY_CONSOLE) { | 124 | if (dev->flags & PCDP_PRIMARY_CONSOLE) { |
123 | if (dev->type == PCDP_CONSOLE_VGA) { | 125 | if (dev->type == PCDP_CONSOLE_VGA) { |
124 | return setup_vga_console(dev); | 126 | rc = setup_vga_console(dev); |
127 | goto out; | ||
125 | } | 128 | } |
126 | } | 129 | } |
127 | } | 130 | } |
128 | 131 | ||
129 | return -ENODEV; | 132 | out: |
133 | iounmap(pcdp); | ||
134 | return rc; | ||
130 | } | 135 | } |
diff --git a/include/asm-ia64/sn/sn_sal.h b/include/asm-ia64/sn/sn_sal.h index 244449df7411..bf4cc867a698 100644 --- a/include/asm-ia64/sn/sn_sal.h +++ b/include/asm-ia64/sn/sn_sal.h | |||
@@ -159,7 +159,7 @@ | |||
159 | static inline u32 | 159 | static inline u32 |
160 | sn_sal_rev(void) | 160 | sn_sal_rev(void) |
161 | { | 161 | { |
162 | struct ia64_sal_systab *systab = efi.sal_systab; | 162 | struct ia64_sal_systab *systab = __va(efi.sal_systab); |
163 | 163 | ||
164 | return (u32)(systab->sal_b_rev_major << 8 | systab->sal_b_rev_minor); | 164 | return (u32)(systab->sal_b_rev_major << 8 | systab->sal_b_rev_minor); |
165 | } | 165 | } |
diff --git a/include/linux/efi.h b/include/linux/efi.h index d15725470aa4..e203613d3aec 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h | |||
@@ -240,19 +240,21 @@ struct efi_memory_map { | |||
240 | unsigned long desc_size; | 240 | unsigned long desc_size; |
241 | }; | 241 | }; |
242 | 242 | ||
243 | #define EFI_INVALID_TABLE_ADDR (~0UL) | ||
244 | |||
243 | /* | 245 | /* |
244 | * All runtime access to EFI goes through this structure: | 246 | * All runtime access to EFI goes through this structure: |
245 | */ | 247 | */ |
246 | extern struct efi { | 248 | extern struct efi { |
247 | efi_system_table_t *systab; /* EFI system table */ | 249 | efi_system_table_t *systab; /* EFI system table */ |
248 | void *mps; /* MPS table */ | 250 | unsigned long mps; /* MPS table */ |
249 | void *acpi; /* ACPI table (IA64 ext 0.71) */ | 251 | unsigned long acpi; /* ACPI table (IA64 ext 0.71) */ |
250 | void *acpi20; /* ACPI table (ACPI 2.0) */ | 252 | unsigned long acpi20; /* ACPI table (ACPI 2.0) */ |
251 | void *smbios; /* SM BIOS table */ | 253 | unsigned long smbios; /* SM BIOS table */ |
252 | void *sal_systab; /* SAL system table */ | 254 | unsigned long sal_systab; /* SAL system table */ |
253 | void *boot_info; /* boot info table */ | 255 | unsigned long boot_info; /* boot info table */ |
254 | void *hcdp; /* HCDP table */ | 256 | unsigned long hcdp; /* HCDP table */ |
255 | void *uga; /* UGA table */ | 257 | unsigned long uga; /* UGA table */ |
256 | efi_get_time_t *get_time; | 258 | efi_get_time_t *get_time; |
257 | efi_set_time_t *set_time; | 259 | efi_set_time_t *set_time; |
258 | efi_get_wakeup_time_t *get_wakeup_time; | 260 | efi_get_wakeup_time_t *get_wakeup_time; |