|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 2/3] arm/efi: Use dom0less configuration when using EFI boot
On 30.09.2021 16:28, Luca Fancellu wrote:
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1127,15 +1127,17 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE
> *SystemTable)
> static EFI_GUID __initdata shim_lock_guid = SHIM_LOCK_PROTOCOL_GUID;
> EFI_LOADED_IMAGE *loaded_image;
> EFI_STATUS status;
> - unsigned int i, argc;
> - CHAR16 **argv, *file_name, *cfg_file_name = NULL, *options = NULL;
> + unsigned int i, argc = 0;
> + CHAR16 **argv, *file_name = NULL, *cfg_file_name = NULL, *options = NULL;
Are these two changes really still needed?
> @@ -1285,14 +1286,13 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE
> *SystemTable)
> efi_bs->FreePool(name.w);
> }
>
> - if ( !name.s )
> - blexit(L"No Dom0 kernel image specified.");
> -
> efi_arch_cfg_file_early(loaded_image, dir_handle, section.s);
>
> - option_str = split_string(name.s);
> + if ( name.s )
> + option_str = split_string(name.s);
option_str = name.s ? split_string(name.s) : NULL;
would be the less intrusive change (eliminating the need to add an
initialized for option_str). Or if you really want to stick to your
model, then please at the same time at least move option_str into
the more narrow scope.
> @@ -1361,12 +1361,30 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE
> *SystemTable)
> efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
> cfg.addr = 0;
>
> - dir_handle->Close(dir_handle);
> -
> if ( gop && !base_video )
> gop_mode = efi_find_gop_mode(gop, cols, rows, depth);
> }
>
> +#ifdef CONFIG_HAS_DEVICE_TREE
> + /* Get the number of boot modules specified on the DT or an error (<0) */
> + dt_modules_found = efi_arch_check_dt_boot(dir_handle);
> +#endif
So I had asked to add a stub enclosed in such an #ifdef, to avoid the
#ifdef here. I may be willing to let you keep things as you have them
now, but I'd like to understand why you've picked that different
approach despite the prior discussion.
> + dir_handle->Close(dir_handle);
> +
> + if ( dt_modules_found < 0 )
> + /* efi_arch_check_dt_boot throws some error */
> + blexit(L"Error processing boot modules on DT.");
> +
> + /*
> + * Check if a proper configuration is provided to start Xen:
> + * - Dom0 specified (minimum required)
> + * - Dom0 and DomU(s) specified
> + * - DomU(s) specified
> + */
May I suggest to shorten the three bullet points to "At least one
of Dom0 or DomU(s) specified"?
> + if ( !dt_modules_found && !kernel.addr )
> + blexit(L"No Dom0 kernel image specified.");
And may I also ask to alter the text here, to be less confusing to
dom0less folks? E.g. "No initial domain kernel specified"?
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |