efi_loader: Add console handle references to in/out/err
authorAlexander Graf <agraf@suse.de>
Tue, 4 Sep 2018 12:59:11 +0000 (14:59 +0200)
committerAlexander Graf <agraf@suse.de>
Sun, 23 Sep 2018 19:55:29 +0000 (21:55 +0200)
We register the console in/out protocol on the loaded image handle, but
never tell anyone about it in the systab.

Because of this Shell.efi can not find the input protocol. So let's add
a proper reference.

Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_console.c

index f5f3f256ddb205b952edd713ab760524f4e32570..277eb91e522340de32e4f618c5c1982fa7811132 100644 (file)
@@ -604,17 +604,23 @@ int efi_console_register(void)
        r = efi_create_handle((efi_handle_t *)&efi_console_output_obj);
        if (r != EFI_SUCCESS)
                goto out_of_memory;
+
        r = efi_add_protocol(efi_console_output_obj->handle,
                             &efi_guid_text_output_protocol, &efi_con_out);
        if (r != EFI_SUCCESS)
                goto out_of_memory;
+       systab.con_out_handle = efi_console_output_obj->handle;
+       systab.stderr_handle = efi_console_output_obj->handle;
+
        r = efi_create_handle((efi_handle_t *)&efi_console_input_obj);
        if (r != EFI_SUCCESS)
                goto out_of_memory;
+
        r = efi_add_protocol(efi_console_input_obj->handle,
                             &efi_guid_text_input_protocol, &efi_con_in);
        if (r != EFI_SUCCESS)
                goto out_of_memory;
+       systab.con_in_handle = efi_console_input_obj->handle;
 
        /* Create console events */
        r = efi_create_event(EVT_NOTIFY_WAIT, TPL_CALLBACK, efi_key_notify,