diff options
| -rw-r--r-- | arch/x86/boot/compressed/eboot.c | 155 | ||||
| -rw-r--r-- | drivers/firmware/efi/efi-stub-helper.c | 44 |
2 files changed, 98 insertions, 101 deletions
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c index 5e1ba4fa3f79..1e6146137f8e 100644 --- a/arch/x86/boot/compressed/eboot.c +++ b/arch/x86/boot/compressed/eboot.c | |||
| @@ -21,6 +21,9 @@ static efi_system_table_t *sys_table; | |||
| 21 | 21 | ||
| 22 | static struct efi_config *efi_early; | 22 | static struct efi_config *efi_early; |
| 23 | 23 | ||
| 24 | #define efi_call_early(f, ...) \ | ||
| 25 | efi_early->call(efi_early->f, __VA_ARGS__); | ||
| 26 | |||
| 24 | #define BOOT_SERVICES(bits) \ | 27 | #define BOOT_SERVICES(bits) \ |
| 25 | static void setup_boot_services##bits(struct efi_config *c) \ | 28 | static void setup_boot_services##bits(struct efi_config *c) \ |
| 26 | { \ | 29 | { \ |
| @@ -78,8 +81,8 @@ __file_size32(void *__fh, efi_char16_t *filename_16, | |||
| 78 | } | 81 | } |
| 79 | 82 | ||
| 80 | grow: | 83 | grow: |
| 81 | status = efi_early->call(efi_early->allocate_pool, EFI_LOADER_DATA, | 84 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, |
| 82 | info_sz, (void **)&info); | 85 | info_sz, (void **)&info); |
| 83 | if (status != EFI_SUCCESS) { | 86 | if (status != EFI_SUCCESS) { |
| 84 | efi_printk(sys_table, "Failed to alloc mem for file info\n"); | 87 | efi_printk(sys_table, "Failed to alloc mem for file info\n"); |
| 85 | return status; | 88 | return status; |
| @@ -88,12 +91,12 @@ grow: | |||
| 88 | status = efi_early->call((unsigned long)h->get_info, h, &info_guid, | 91 | status = efi_early->call((unsigned long)h->get_info, h, &info_guid, |
| 89 | &info_sz, info); | 92 | &info_sz, info); |
| 90 | if (status == EFI_BUFFER_TOO_SMALL) { | 93 | if (status == EFI_BUFFER_TOO_SMALL) { |
| 91 | efi_early->call(efi_early->free_pool, info); | 94 | efi_call_early(free_pool, info); |
| 92 | goto grow; | 95 | goto grow; |
| 93 | } | 96 | } |
| 94 | 97 | ||
| 95 | *file_sz = info->file_size; | 98 | *file_sz = info->file_size; |
| 96 | efi_early->call(efi_early->free_pool, info); | 99 | efi_call_early(free_pool, info); |
| 97 | 100 | ||
| 98 | if (status != EFI_SUCCESS) | 101 | if (status != EFI_SUCCESS) |
| 99 | efi_printk(sys_table, "Failed to get initrd info\n"); | 102 | efi_printk(sys_table, "Failed to get initrd info\n"); |
| @@ -131,8 +134,8 @@ __file_size64(void *__fh, efi_char16_t *filename_16, | |||
| 131 | } | 134 | } |
| 132 | 135 | ||
| 133 | grow: | 136 | grow: |
| 134 | status = efi_early->call(efi_early->allocate_pool, EFI_LOADER_DATA, | 137 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, |
| 135 | info_sz, (void **)&info); | 138 | info_sz, (void **)&info); |
| 136 | if (status != EFI_SUCCESS) { | 139 | if (status != EFI_SUCCESS) { |
| 137 | efi_printk(sys_table, "Failed to alloc mem for file info\n"); | 140 | efi_printk(sys_table, "Failed to alloc mem for file info\n"); |
| 138 | return status; | 141 | return status; |
| @@ -141,12 +144,12 @@ grow: | |||
| 141 | status = efi_early->call((unsigned long)h->get_info, h, &info_guid, | 144 | status = efi_early->call((unsigned long)h->get_info, h, &info_guid, |
| 142 | &info_sz, info); | 145 | &info_sz, info); |
| 143 | if (status == EFI_BUFFER_TOO_SMALL) { | 146 | if (status == EFI_BUFFER_TOO_SMALL) { |
| 144 | efi_early->call(efi_early->free_pool, info); | 147 | efi_call_early(free_pool, info); |
| 145 | goto grow; | 148 | goto grow; |
| 146 | } | 149 | } |
| 147 | 150 | ||
| 148 | *file_sz = info->file_size; | 151 | *file_sz = info->file_size; |
| 149 | efi_early->call(efi_early->free_pool, info); | 152 | efi_call_early(free_pool, info); |
| 150 | 153 | ||
| 151 | if (status != EFI_SUCCESS) | 154 | if (status != EFI_SUCCESS) |
| 152 | efi_printk(sys_table, "Failed to get initrd info\n"); | 155 | efi_printk(sys_table, "Failed to get initrd info\n"); |
| @@ -204,8 +207,8 @@ static inline efi_status_t __open_volume32(void *__image, void **__fh) | |||
| 204 | void *handle = (void *)(unsigned long)image->device_handle; | 207 | void *handle = (void *)(unsigned long)image->device_handle; |
| 205 | unsigned long func; | 208 | unsigned long func; |
| 206 | 209 | ||
| 207 | status = efi_early->call(efi_early->handle_protocol, handle, | 210 | status = efi_call_early(handle_protocol, handle, |
| 208 | &fs_proto, (void **)&io); | 211 | &fs_proto, (void **)&io); |
| 209 | if (status != EFI_SUCCESS) { | 212 | if (status != EFI_SUCCESS) { |
| 210 | efi_printk(sys_table, "Failed to handle fs_proto\n"); | 213 | efi_printk(sys_table, "Failed to handle fs_proto\n"); |
| 211 | return status; | 214 | return status; |
| @@ -230,8 +233,8 @@ static inline efi_status_t __open_volume64(void *__image, void **__fh) | |||
| 230 | void *handle = (void *)(unsigned long)image->device_handle; | 233 | void *handle = (void *)(unsigned long)image->device_handle; |
| 231 | unsigned long func; | 234 | unsigned long func; |
| 232 | 235 | ||
| 233 | status = efi_early->call(efi_early->handle_protocol, handle, | 236 | status = efi_call_early(handle_protocol, handle, |
| 234 | &fs_proto, (void **)&io); | 237 | &fs_proto, (void **)&io); |
| 235 | if (status != EFI_SUCCESS) { | 238 | if (status != EFI_SUCCESS) { |
| 236 | efi_printk(sys_table, "Failed to handle fs_proto\n"); | 239 | efi_printk(sys_table, "Failed to handle fs_proto\n"); |
| 237 | return status; | 240 | return status; |
| @@ -325,9 +328,7 @@ __setup_efi_pci32(efi_pci_io_protocol_32 *pci, struct pci_setup_rom **__rom) | |||
| 325 | 328 | ||
| 326 | size = pci->romsize + sizeof(*rom); | 329 | size = pci->romsize + sizeof(*rom); |
| 327 | 330 | ||
| 328 | status = efi_early->call(efi_early->allocate_pool, | 331 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, size, &rom); |
| 329 | EFI_LOADER_DATA, size, &rom); | ||
| 330 | |||
| 331 | if (status != EFI_SUCCESS) | 332 | if (status != EFI_SUCCESS) |
| 332 | return status; | 333 | return status; |
| 333 | 334 | ||
| @@ -361,7 +362,7 @@ __setup_efi_pci32(efi_pci_io_protocol_32 *pci, struct pci_setup_rom **__rom) | |||
| 361 | return status; | 362 | return status; |
| 362 | 363 | ||
| 363 | free_struct: | 364 | free_struct: |
| 364 | efi_early->call(efi_early->free_pool, rom); | 365 | efi_call_early(free_pool, rom); |
| 365 | return status; | 366 | return status; |
| 366 | } | 367 | } |
| 367 | 368 | ||
| @@ -387,8 +388,8 @@ setup_efi_pci32(struct boot_params *params, void **pci_handle, | |||
| 387 | struct pci_setup_rom *rom = NULL; | 388 | struct pci_setup_rom *rom = NULL; |
| 388 | u32 h = handles[i]; | 389 | u32 h = handles[i]; |
| 389 | 390 | ||
| 390 | status = efi_early->call(efi_early->handle_protocol, h, | 391 | status = efi_call_early(handle_protocol, h, |
| 391 | &pci_proto, (void **)&pci); | 392 | &pci_proto, (void **)&pci); |
| 392 | 393 | ||
| 393 | if (status != EFI_SUCCESS) | 394 | if (status != EFI_SUCCESS) |
| 394 | continue; | 395 | continue; |
| @@ -431,9 +432,7 @@ __setup_efi_pci64(efi_pci_io_protocol_64 *pci, struct pci_setup_rom **__rom) | |||
| 431 | 432 | ||
| 432 | size = pci->romsize + sizeof(*rom); | 433 | size = pci->romsize + sizeof(*rom); |
| 433 | 434 | ||
| 434 | status = efi_early->call(efi_early->allocate_pool, | 435 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, size, &rom); |
| 435 | EFI_LOADER_DATA, size, &rom); | ||
| 436 | |||
| 437 | if (status != EFI_SUCCESS) | 436 | if (status != EFI_SUCCESS) |
| 438 | return status; | 437 | return status; |
| 439 | 438 | ||
| @@ -465,7 +464,7 @@ __setup_efi_pci64(efi_pci_io_protocol_64 *pci, struct pci_setup_rom **__rom) | |||
| 465 | return status; | 464 | return status; |
| 466 | 465 | ||
| 467 | free_struct: | 466 | free_struct: |
| 468 | efi_early->call(efi_early->free_pool, rom); | 467 | efi_call_early(free_pool, rom); |
| 469 | return status; | 468 | return status; |
| 470 | 469 | ||
| 471 | } | 470 | } |
| @@ -492,8 +491,8 @@ setup_efi_pci64(struct boot_params *params, void **pci_handle, | |||
| 492 | struct pci_setup_rom *rom = NULL; | 491 | struct pci_setup_rom *rom = NULL; |
| 493 | u64 h = handles[i]; | 492 | u64 h = handles[i]; |
| 494 | 493 | ||
| 495 | status = efi_early->call(efi_early->handle_protocol, h, | 494 | status = efi_call_early(handle_protocol, h, |
| 496 | &pci_proto, (void **)&pci); | 495 | &pci_proto, (void **)&pci); |
| 497 | 496 | ||
| 498 | if (status != EFI_SUCCESS) | 497 | if (status != EFI_SUCCESS) |
| 499 | continue; | 498 | continue; |
| @@ -524,21 +523,21 @@ static efi_status_t setup_efi_pci(struct boot_params *params) | |||
| 524 | efi_guid_t pci_proto = EFI_PCI_IO_PROTOCOL_GUID; | 523 | efi_guid_t pci_proto = EFI_PCI_IO_PROTOCOL_GUID; |
| 525 | unsigned long size = 0; | 524 | unsigned long size = 0; |
| 526 | 525 | ||
| 527 | status = efi_early->call(efi_early->locate_handle, | 526 | status = efi_call_early(locate_handle, |
| 528 | EFI_LOCATE_BY_PROTOCOL, | 527 | EFI_LOCATE_BY_PROTOCOL, |
| 529 | &pci_proto, NULL, &size, pci_handle); | 528 | &pci_proto, NULL, &size, pci_handle); |
| 530 | 529 | ||
| 531 | if (status == EFI_BUFFER_TOO_SMALL) { | 530 | if (status == EFI_BUFFER_TOO_SMALL) { |
| 532 | status = efi_early->call(efi_early->allocate_pool, | 531 | status = efi_call_early(allocate_pool, |
| 533 | EFI_LOADER_DATA, | 532 | EFI_LOADER_DATA, |
| 534 | size, (void **)&pci_handle); | 533 | size, (void **)&pci_handle); |
| 535 | 534 | ||
| 536 | if (status != EFI_SUCCESS) | 535 | if (status != EFI_SUCCESS) |
| 537 | return status; | 536 | return status; |
| 538 | 537 | ||
| 539 | status = efi_early->call(efi_early->locate_handle, | 538 | status = efi_call_early(locate_handle, |
| 540 | EFI_LOCATE_BY_PROTOCOL, &pci_proto, | 539 | EFI_LOCATE_BY_PROTOCOL, &pci_proto, |
| 541 | NULL, &size, pci_handle); | 540 | NULL, &size, pci_handle); |
| 542 | } | 541 | } |
| 543 | 542 | ||
| 544 | if (status != EFI_SUCCESS) | 543 | if (status != EFI_SUCCESS) |
| @@ -550,7 +549,7 @@ static efi_status_t setup_efi_pci(struct boot_params *params) | |||
| 550 | status = setup_efi_pci32(params, pci_handle, size); | 549 | status = setup_efi_pci32(params, pci_handle, size); |
| 551 | 550 | ||
| 552 | free_handle: | 551 | free_handle: |
| 553 | efi_early->call(efi_early->free_pool, pci_handle); | 552 | efi_call_early(free_pool, pci_handle); |
| 554 | return status; | 553 | return status; |
| 555 | } | 554 | } |
| 556 | 555 | ||
| @@ -651,13 +650,13 @@ setup_gop32(struct screen_info *si, efi_guid_t *proto, | |||
| 651 | void *dummy = NULL; | 650 | void *dummy = NULL; |
| 652 | u32 h = handles[i]; | 651 | u32 h = handles[i]; |
| 653 | 652 | ||
| 654 | status = efi_early->call(efi_early->handle_protocol, h, | 653 | status = efi_call_early(handle_protocol, h, |
| 655 | proto, (void **)&gop32); | 654 | proto, (void **)&gop32); |
| 656 | if (status != EFI_SUCCESS) | 655 | if (status != EFI_SUCCESS) |
| 657 | continue; | 656 | continue; |
| 658 | 657 | ||
| 659 | status = efi_early->call(efi_early->handle_protocol, h, | 658 | status = efi_call_early(handle_protocol, h, |
| 660 | &conout_proto, &dummy); | 659 | &conout_proto, &dummy); |
| 661 | if (status == EFI_SUCCESS) | 660 | if (status == EFI_SUCCESS) |
| 662 | conout_found = true; | 661 | conout_found = true; |
| 663 | 662 | ||
| @@ -754,13 +753,13 @@ setup_gop64(struct screen_info *si, efi_guid_t *proto, | |||
| 754 | void *dummy = NULL; | 753 | void *dummy = NULL; |
| 755 | u64 h = handles[i]; | 754 | u64 h = handles[i]; |
| 756 | 755 | ||
| 757 | status = efi_early->call(efi_early->handle_protocol, h, | 756 | status = efi_call_early(handle_protocol, h, |
| 758 | proto, (void **)&gop64); | 757 | proto, (void **)&gop64); |
| 759 | if (status != EFI_SUCCESS) | 758 | if (status != EFI_SUCCESS) |
| 760 | continue; | 759 | continue; |
| 761 | 760 | ||
| 762 | status = efi_early->call(efi_early->handle_protocol, h, | 761 | status = efi_call_early(handle_protocol, h, |
| 763 | &conout_proto, &dummy); | 762 | &conout_proto, &dummy); |
| 764 | if (status == EFI_SUCCESS) | 763 | if (status == EFI_SUCCESS) |
| 765 | conout_found = true; | 764 | conout_found = true; |
| 766 | 765 | ||
| @@ -819,14 +818,14 @@ static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto, | |||
| 819 | efi_status_t status; | 818 | efi_status_t status; |
| 820 | void **gop_handle = NULL; | 819 | void **gop_handle = NULL; |
| 821 | 820 | ||
| 822 | status = efi_early->call(efi_early->allocate_pool, EFI_LOADER_DATA, | 821 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, |
| 823 | size, (void **)&gop_handle); | 822 | size, (void **)&gop_handle); |
| 824 | if (status != EFI_SUCCESS) | 823 | if (status != EFI_SUCCESS) |
| 825 | return status; | 824 | return status; |
| 826 | 825 | ||
| 827 | status = efi_early->call(efi_early->locate_handle, | 826 | status = efi_call_early(locate_handle, |
| 828 | EFI_LOCATE_BY_PROTOCOL, | 827 | EFI_LOCATE_BY_PROTOCOL, |
| 829 | proto, NULL, &size, gop_handle); | 828 | proto, NULL, &size, gop_handle); |
| 830 | if (status != EFI_SUCCESS) | 829 | if (status != EFI_SUCCESS) |
| 831 | goto free_handle; | 830 | goto free_handle; |
| 832 | 831 | ||
| @@ -836,7 +835,7 @@ static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto, | |||
| 836 | status = setup_gop32(si, proto, size, gop_handle); | 835 | status = setup_gop32(si, proto, size, gop_handle); |
| 837 | 836 | ||
| 838 | free_handle: | 837 | free_handle: |
| 839 | efi_early->call(efi_early->free_pool, gop_handle); | 838 | efi_call_early(free_pool, gop_handle); |
| 840 | return status; | 839 | return status; |
| 841 | } | 840 | } |
| 842 | 841 | ||
| @@ -858,13 +857,12 @@ setup_uga32(void **uga_handle, unsigned long size, u32 *width, u32 *height) | |||
| 858 | void *pciio; | 857 | void *pciio; |
| 859 | u32 handle = handles[i]; | 858 | u32 handle = handles[i]; |
| 860 | 859 | ||
| 861 | status = efi_early->call(efi_early->handle_protocol, handle, | 860 | status = efi_call_early(handle_protocol, handle, |
| 862 | &uga_proto, (void **)&uga); | 861 | &uga_proto, (void **)&uga); |
| 863 | if (status != EFI_SUCCESS) | 862 | if (status != EFI_SUCCESS) |
| 864 | continue; | 863 | continue; |
| 865 | 864 | ||
| 866 | efi_early->call(efi_early->handle_protocol, handle, | 865 | efi_call_early(handle_protocol, handle, &pciio_proto, &pciio); |
| 867 | &pciio_proto, &pciio); | ||
| 868 | 866 | ||
| 869 | status = efi_early->call((unsigned long)uga->get_mode, uga, | 867 | status = efi_early->call((unsigned long)uga->get_mode, uga, |
| 870 | &w, &h, &depth, &refresh); | 868 | &w, &h, &depth, &refresh); |
| @@ -904,13 +902,12 @@ setup_uga64(void **uga_handle, unsigned long size, u32 *width, u32 *height) | |||
| 904 | void *pciio; | 902 | void *pciio; |
| 905 | u64 handle = handles[i]; | 903 | u64 handle = handles[i]; |
| 906 | 904 | ||
| 907 | status = efi_early->call(efi_early->handle_protocol, handle, | 905 | status = efi_call_early(handle_protocol, handle, |
| 908 | &uga_proto, (void **)&uga); | 906 | &uga_proto, (void **)&uga); |
| 909 | if (status != EFI_SUCCESS) | 907 | if (status != EFI_SUCCESS) |
| 910 | continue; | 908 | continue; |
| 911 | 909 | ||
| 912 | efi_early->call(efi_early->handle_protocol, handle, | 910 | efi_call_early(handle_protocol, handle, &pciio_proto, &pciio); |
| 913 | &pciio_proto, &pciio); | ||
| 914 | 911 | ||
| 915 | status = efi_early->call((unsigned long)uga->get_mode, uga, | 912 | status = efi_early->call((unsigned long)uga->get_mode, uga, |
| 916 | &w, &h, &depth, &refresh); | 913 | &w, &h, &depth, &refresh); |
| @@ -942,14 +939,14 @@ static efi_status_t setup_uga(struct screen_info *si, efi_guid_t *uga_proto, | |||
| 942 | u32 width, height; | 939 | u32 width, height; |
| 943 | void **uga_handle = NULL; | 940 | void **uga_handle = NULL; |
| 944 | 941 | ||
| 945 | status = efi_early->call(efi_early->allocate_pool, EFI_LOADER_DATA, | 942 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, |
| 946 | size, (void **)&uga_handle); | 943 | size, (void **)&uga_handle); |
| 947 | if (status != EFI_SUCCESS) | 944 | if (status != EFI_SUCCESS) |
| 948 | return status; | 945 | return status; |
| 949 | 946 | ||
| 950 | status = efi_early->call(efi_early->locate_handle, | 947 | status = efi_call_early(locate_handle, |
| 951 | EFI_LOCATE_BY_PROTOCOL, | 948 | EFI_LOCATE_BY_PROTOCOL, |
| 952 | uga_proto, NULL, &size, uga_handle); | 949 | uga_proto, NULL, &size, uga_handle); |
| 953 | if (status != EFI_SUCCESS) | 950 | if (status != EFI_SUCCESS) |
| 954 | goto free_handle; | 951 | goto free_handle; |
| 955 | 952 | ||
| @@ -981,7 +978,7 @@ static efi_status_t setup_uga(struct screen_info *si, efi_guid_t *uga_proto, | |||
| 981 | si->rsvd_pos = 24; | 978 | si->rsvd_pos = 24; |
| 982 | 979 | ||
| 983 | free_handle: | 980 | free_handle: |
| 984 | efi_early->call(efi_early->free_pool, uga_handle); | 981 | efi_call_early(free_pool, uga_handle); |
| 985 | return status; | 982 | return status; |
| 986 | } | 983 | } |
| 987 | 984 | ||
| @@ -999,17 +996,17 @@ void setup_graphics(struct boot_params *boot_params) | |||
| 999 | memset(si, 0, sizeof(*si)); | 996 | memset(si, 0, sizeof(*si)); |
| 1000 | 997 | ||
| 1001 | size = 0; | 998 | size = 0; |
| 1002 | status = efi_early->call(efi_early->locate_handle, | 999 | status = efi_call_early(locate_handle, |
| 1003 | EFI_LOCATE_BY_PROTOCOL, | 1000 | EFI_LOCATE_BY_PROTOCOL, |
| 1004 | &graphics_proto, NULL, &size, gop_handle); | 1001 | &graphics_proto, NULL, &size, gop_handle); |
| 1005 | if (status == EFI_BUFFER_TOO_SMALL) | 1002 | if (status == EFI_BUFFER_TOO_SMALL) |
| 1006 | status = setup_gop(si, &graphics_proto, size); | 1003 | status = setup_gop(si, &graphics_proto, size); |
| 1007 | 1004 | ||
| 1008 | if (status != EFI_SUCCESS) { | 1005 | if (status != EFI_SUCCESS) { |
| 1009 | size = 0; | 1006 | size = 0; |
| 1010 | status = efi_early->call(efi_early->locate_handle, | 1007 | status = efi_call_early(locate_handle, |
| 1011 | EFI_LOCATE_BY_PROTOCOL, | 1008 | EFI_LOCATE_BY_PROTOCOL, |
| 1012 | &uga_proto, NULL, &size, uga_handle); | 1009 | &uga_proto, NULL, &size, uga_handle); |
| 1013 | if (status == EFI_BUFFER_TOO_SMALL) | 1010 | if (status == EFI_BUFFER_TOO_SMALL) |
| 1014 | setup_uga(si, &uga_proto, size); | 1011 | setup_uga(si, &uga_proto, size); |
| 1015 | } | 1012 | } |
| @@ -1052,8 +1049,8 @@ struct boot_params *make_boot_params(struct efi_config *c) | |||
| 1052 | else | 1049 | else |
| 1053 | setup_boot_services32(efi_early); | 1050 | setup_boot_services32(efi_early); |
| 1054 | 1051 | ||
| 1055 | status = efi_early->call(efi_early->handle_protocol, handle, | 1052 | status = efi_call_early(handle_protocol, handle, |
| 1056 | &proto, (void *)&image); | 1053 | &proto, (void *)&image); |
| 1057 | if (status != EFI_SUCCESS) { | 1054 | if (status != EFI_SUCCESS) { |
| 1058 | efi_printk(sys_table, "Failed to get handle for LOADED_IMAGE_PROTOCOL\n"); | 1055 | efi_printk(sys_table, "Failed to get handle for LOADED_IMAGE_PROTOCOL\n"); |
| 1059 | return NULL; | 1056 | return NULL; |
| @@ -1242,13 +1239,13 @@ static efi_status_t alloc_e820ext(u32 nr_desc, struct setup_data **e820ext, | |||
| 1242 | sizeof(struct e820entry) * nr_desc; | 1239 | sizeof(struct e820entry) * nr_desc; |
| 1243 | 1240 | ||
| 1244 | if (*e820ext) { | 1241 | if (*e820ext) { |
| 1245 | efi_early->call(efi_early->free_pool, *e820ext); | 1242 | efi_call_early(free_pool, *e820ext); |
| 1246 | *e820ext = NULL; | 1243 | *e820ext = NULL; |
| 1247 | *e820ext_size = 0; | 1244 | *e820ext_size = 0; |
| 1248 | } | 1245 | } |
| 1249 | 1246 | ||
| 1250 | status = efi_early->call(efi_early->allocate_pool, EFI_LOADER_DATA, | 1247 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, |
| 1251 | size, (void **)e820ext); | 1248 | size, (void **)e820ext); |
| 1252 | if (status == EFI_SUCCESS) | 1249 | if (status == EFI_SUCCESS) |
| 1253 | *e820ext_size = size; | 1250 | *e820ext_size = size; |
| 1254 | 1251 | ||
| @@ -1292,7 +1289,7 @@ get_map: | |||
| 1292 | if (status != EFI_SUCCESS) | 1289 | if (status != EFI_SUCCESS) |
| 1293 | goto free_mem_map; | 1290 | goto free_mem_map; |
| 1294 | 1291 | ||
| 1295 | efi_early->call(efi_early->free_pool, mem_map); | 1292 | efi_call_early(free_pool, mem_map); |
| 1296 | goto get_map; /* Allocated memory, get map again */ | 1293 | goto get_map; /* Allocated memory, get map again */ |
| 1297 | } | 1294 | } |
| 1298 | 1295 | ||
| @@ -1311,7 +1308,7 @@ get_map: | |||
| 1311 | #endif | 1308 | #endif |
| 1312 | 1309 | ||
| 1313 | /* Might as well exit boot services now */ | 1310 | /* Might as well exit boot services now */ |
| 1314 | status = efi_early->call(efi_early->exit_boot_services, handle, key); | 1311 | status = efi_call_early(exit_boot_services, handle, key); |
| 1315 | if (status != EFI_SUCCESS) { | 1312 | if (status != EFI_SUCCESS) { |
| 1316 | /* | 1313 | /* |
| 1317 | * ExitBootServices() will fail if any of the event | 1314 | * ExitBootServices() will fail if any of the event |
| @@ -1324,7 +1321,7 @@ get_map: | |||
| 1324 | goto free_mem_map; | 1321 | goto free_mem_map; |
| 1325 | 1322 | ||
| 1326 | called_exit = true; | 1323 | called_exit = true; |
| 1327 | efi_early->call(efi_early->free_pool, mem_map); | 1324 | efi_call_early(free_pool, mem_map); |
| 1328 | goto get_map; | 1325 | goto get_map; |
| 1329 | } | 1326 | } |
| 1330 | 1327 | ||
| @@ -1338,7 +1335,7 @@ get_map: | |||
| 1338 | return EFI_SUCCESS; | 1335 | return EFI_SUCCESS; |
| 1339 | 1336 | ||
| 1340 | free_mem_map: | 1337 | free_mem_map: |
| 1341 | efi_early->call(efi_early->free_pool, mem_map); | 1338 | efi_call_early(free_pool, mem_map); |
| 1342 | return status; | 1339 | return status; |
| 1343 | } | 1340 | } |
| 1344 | 1341 | ||
| @@ -1379,8 +1376,8 @@ struct boot_params *efi_main(struct efi_config *c, | |||
| 1379 | 1376 | ||
| 1380 | setup_efi_pci(boot_params); | 1377 | setup_efi_pci(boot_params); |
| 1381 | 1378 | ||
| 1382 | status = efi_early->call(efi_early->allocate_pool, EFI_LOADER_DATA, | 1379 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, |
| 1383 | sizeof(*gdt), (void **)&gdt); | 1380 | sizeof(*gdt), (void **)&gdt); |
| 1384 | if (status != EFI_SUCCESS) { | 1381 | if (status != EFI_SUCCESS) { |
| 1385 | efi_printk(sys_table, "Failed to alloc mem for gdt structure\n"); | 1382 | efi_printk(sys_table, "Failed to alloc mem for gdt structure\n"); |
| 1386 | goto fail; | 1383 | goto fail; |
diff --git a/drivers/firmware/efi/efi-stub-helper.c b/drivers/firmware/efi/efi-stub-helper.c index a0282872d97d..ff50aeebf0d9 100644 --- a/drivers/firmware/efi/efi-stub-helper.c +++ b/drivers/firmware/efi/efi-stub-helper.c | |||
| @@ -53,22 +53,22 @@ again: | |||
| 53 | * allocation which may be in a new descriptor region. | 53 | * allocation which may be in a new descriptor region. |
| 54 | */ | 54 | */ |
| 55 | *map_size += sizeof(*m); | 55 | *map_size += sizeof(*m); |
| 56 | status = efi_early->call(efi_early->allocate_pool, EFI_LOADER_DATA, | 56 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, |
| 57 | *map_size, (void **)&m); | 57 | *map_size, (void **)&m); |
| 58 | if (status != EFI_SUCCESS) | 58 | if (status != EFI_SUCCESS) |
| 59 | goto fail; | 59 | goto fail; |
| 60 | 60 | ||
| 61 | *desc_size = 0; | 61 | *desc_size = 0; |
| 62 | key = 0; | 62 | key = 0; |
| 63 | status = efi_early->call(efi_early->get_memory_map, map_size, m, | 63 | status = efi_call_early(get_memory_map, map_size, m, |
| 64 | &key, desc_size, &desc_version); | 64 | &key, desc_size, &desc_version); |
| 65 | if (status == EFI_BUFFER_TOO_SMALL) { | 65 | if (status == EFI_BUFFER_TOO_SMALL) { |
| 66 | efi_early->call(efi_early->free_pool, m); | 66 | efi_call_early(free_pool, m); |
| 67 | goto again; | 67 | goto again; |
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | if (status != EFI_SUCCESS) | 70 | if (status != EFI_SUCCESS) |
| 71 | efi_early->call(efi_early->free_pool, m); | 71 | efi_call_early(free_pool, m); |
| 72 | 72 | ||
| 73 | if (key_ptr && status == EFI_SUCCESS) | 73 | if (key_ptr && status == EFI_SUCCESS) |
| 74 | *key_ptr = key; | 74 | *key_ptr = key; |
| @@ -149,9 +149,9 @@ again: | |||
| 149 | if (!max_addr) | 149 | if (!max_addr) |
| 150 | status = EFI_NOT_FOUND; | 150 | status = EFI_NOT_FOUND; |
| 151 | else { | 151 | else { |
| 152 | status = efi_early->call(efi_early->allocate_pages, | 152 | status = efi_call_early(allocate_pages, |
| 153 | EFI_ALLOCATE_ADDRESS, EFI_LOADER_DATA, | 153 | EFI_ALLOCATE_ADDRESS, EFI_LOADER_DATA, |
| 154 | nr_pages, &max_addr); | 154 | nr_pages, &max_addr); |
| 155 | if (status != EFI_SUCCESS) { | 155 | if (status != EFI_SUCCESS) { |
| 156 | max = max_addr; | 156 | max = max_addr; |
| 157 | max_addr = 0; | 157 | max_addr = 0; |
| @@ -161,7 +161,7 @@ again: | |||
| 161 | *addr = max_addr; | 161 | *addr = max_addr; |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | efi_early->call(efi_early->free_pool, map); | 164 | efi_call_early(free_pool, map); |
| 165 | fail: | 165 | fail: |
| 166 | return status; | 166 | return status; |
| 167 | } | 167 | } |
| @@ -221,9 +221,9 @@ static efi_status_t efi_low_alloc(efi_system_table_t *sys_table_arg, | |||
| 221 | if ((start + size) > end) | 221 | if ((start + size) > end) |
| 222 | continue; | 222 | continue; |
| 223 | 223 | ||
| 224 | status = efi_early->call(efi_early->allocate_pages, | 224 | status = efi_call_early(allocate_pages, |
| 225 | EFI_ALLOCATE_ADDRESS, EFI_LOADER_DATA, | 225 | EFI_ALLOCATE_ADDRESS, EFI_LOADER_DATA, |
| 226 | nr_pages, &start); | 226 | nr_pages, &start); |
| 227 | if (status == EFI_SUCCESS) { | 227 | if (status == EFI_SUCCESS) { |
| 228 | *addr = start; | 228 | *addr = start; |
| 229 | break; | 229 | break; |
| @@ -233,7 +233,7 @@ static efi_status_t efi_low_alloc(efi_system_table_t *sys_table_arg, | |||
| 233 | if (i == map_size / desc_size) | 233 | if (i == map_size / desc_size) |
| 234 | status = EFI_NOT_FOUND; | 234 | status = EFI_NOT_FOUND; |
| 235 | 235 | ||
| 236 | efi_early->call(efi_early->free_pool, map); | 236 | efi_call_early(free_pool, map); |
| 237 | fail: | 237 | fail: |
| 238 | return status; | 238 | return status; |
| 239 | } | 239 | } |
| @@ -247,7 +247,7 @@ static void efi_free(efi_system_table_t *sys_table_arg, unsigned long size, | |||
| 247 | return; | 247 | return; |
| 248 | 248 | ||
| 249 | nr_pages = round_up(size, EFI_PAGE_SIZE) / EFI_PAGE_SIZE; | 249 | nr_pages = round_up(size, EFI_PAGE_SIZE) / EFI_PAGE_SIZE; |
| 250 | efi_early->call(efi_early->free_pages, addr, nr_pages); | 250 | efi_call_early(free_pages, addr, nr_pages); |
| 251 | } | 251 | } |
| 252 | 252 | ||
| 253 | 253 | ||
| @@ -307,8 +307,8 @@ static efi_status_t handle_cmdline_files(efi_system_table_t *sys_table_arg, | |||
| 307 | if (!nr_files) | 307 | if (!nr_files) |
| 308 | return EFI_SUCCESS; | 308 | return EFI_SUCCESS; |
| 309 | 309 | ||
| 310 | status = efi_early->call(efi_early->allocate_pool, EFI_LOADER_DATA, | 310 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, |
| 311 | nr_files * sizeof(*files), (void **)&files); | 311 | nr_files * sizeof(*files), (void **)&files); |
| 312 | if (status != EFI_SUCCESS) { | 312 | if (status != EFI_SUCCESS) { |
| 313 | efi_printk(sys_table_arg, "Failed to alloc mem for file handle list\n"); | 313 | efi_printk(sys_table_arg, "Failed to alloc mem for file handle list\n"); |
| 314 | goto fail; | 314 | goto fail; |
| @@ -413,7 +413,7 @@ static efi_status_t handle_cmdline_files(efi_system_table_t *sys_table_arg, | |||
| 413 | 413 | ||
| 414 | } | 414 | } |
| 415 | 415 | ||
| 416 | efi_early->call(efi_early->free_pool, files); | 416 | efi_call_early(free_pool, files); |
| 417 | 417 | ||
| 418 | *load_addr = file_addr; | 418 | *load_addr = file_addr; |
| 419 | *load_size = file_size_total; | 419 | *load_size = file_size_total; |
| @@ -427,7 +427,7 @@ close_handles: | |||
| 427 | for (k = j; k < i; k++) | 427 | for (k = j; k < i; k++) |
| 428 | efi_file_close(fh, files[k].handle); | 428 | efi_file_close(fh, files[k].handle); |
| 429 | free_files: | 429 | free_files: |
| 430 | efi_early->call(efi_early->free_pool, files); | 430 | efi_call_early(free_pool, files); |
| 431 | fail: | 431 | fail: |
| 432 | *load_addr = 0; | 432 | *load_addr = 0; |
| 433 | *load_size = 0; | 433 | *load_size = 0; |
| @@ -473,9 +473,9 @@ static efi_status_t efi_relocate_kernel(efi_system_table_t *sys_table_arg, | |||
| 473 | * as possible while respecting the required alignment. | 473 | * as possible while respecting the required alignment. |
| 474 | */ | 474 | */ |
| 475 | nr_pages = round_up(alloc_size, EFI_PAGE_SIZE) / EFI_PAGE_SIZE; | 475 | nr_pages = round_up(alloc_size, EFI_PAGE_SIZE) / EFI_PAGE_SIZE; |
| 476 | status = efi_early->call(efi_early->allocate_pages, | 476 | status = efi_call_early(allocate_pages, |
| 477 | EFI_ALLOCATE_ADDRESS, EFI_LOADER_DATA, | 477 | EFI_ALLOCATE_ADDRESS, EFI_LOADER_DATA, |
| 478 | nr_pages, &efi_addr); | 478 | nr_pages, &efi_addr); |
| 479 | new_addr = efi_addr; | 479 | new_addr = efi_addr; |
| 480 | /* | 480 | /* |
| 481 | * If preferred address allocation failed allocate as low as | 481 | * If preferred address allocation failed allocate as low as |
