]> git.sur5r.net Git - u-boot/commitdiff
efi_loader: Clean up system table on exit
authorAlexander Graf <agraf@suse.de>
Tue, 17 May 2016 22:54:47 +0000 (00:54 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 27 May 2016 19:39:56 +0000 (15:39 -0400)
We put the system table into our runtime services data section so that
payloads may still access it after exit_boot_services. However, most fields
in it are quite useless once we're in that state, so let's just patch them
out.

With this patch we don't get spurious warnings when running EFI binaries
anymore.

Signed-off-by: Alexander Graf <agraf@suse.de>
lib/efi_loader/efi_runtime.c

index 3ee27ca9cc624ec8031ccddc428338d89fe44e4d..11d01268d8c03148ae9a2fa4bd83b6698664d8cd 100644 (file)
@@ -125,6 +125,22 @@ static const struct efi_runtime_detach_list_struct efi_runtime_detach_list[] = {
                /* RTC accessors are gone */
                .ptr = &efi_runtime_services.get_time,
                .patchto = &efi_device_error,
+       }, {
+               /* Clean up system table */
+               .ptr = &systab.con_in,
+               .patchto = NULL,
+       }, {
+               /* Clean up system table */
+               .ptr = &systab.con_out,
+               .patchto = NULL,
+       }, {
+               /* Clean up system table */
+               .ptr = &systab.std_err,
+               .patchto = NULL,
+       }, {
+               /* Clean up system table */
+               .ptr = &systab.boottime,
+               .patchto = NULL,
        },
 };