[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v8] Preserve the EFI System Resource Table for dom0
On 24.06.2022 20:17, Demi Marie Obenour wrote: > The EFI System Resource Table (ESRT) is necessary for fwupd to identify > firmware updates to install. According to the UEFI specification §23.4, > the ESRT shall be stored in memory of type EfiBootServicesData. However, > memory of type EfiBootServicesData is considered general-purpose memory > by Xen, so the ESRT needs to be moved somewhere where Xen will not > overwrite it. Copy the ESRT to memory of type EfiRuntimeServicesData, > which Xen will not reuse. dom0 can use the ESRT if (and only if) it is > in memory of type EfiRuntimeServicesData. > > Earlier versions of this patch reserved the memory in which the ESRT was > located. This created awkward alignment problems, and required either > splitting the E820 table or wasting memory. It also would have required > a new platform op for dom0 to use to indicate if the ESRT is reserved. > By copying the ESRT into EfiRuntimeServicesData memory, the E820 table > does not need to be modified, and dom0 can just check the type of the > memory region containing the ESRT. The copy is only done if the ESRT is > not already in EfiRuntimeServicesData memory, avoiding memory leaks on > repeated kexec. > > See https://lore.kernel.org/xen-devel/20200818184018.GN1679@mail-itl/T/ > for details. > > Signed-off-by: Demi Marie Obenour <demi@xxxxxxxxxxxxxxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> with one further adjustment: > @@ -1051,6 +1110,70 @@ static void __init > efi_set_gop_mode(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop, UINTN gop > #define INVALID_VIRTUAL_ADDRESS (0xBAAADUL << \ > (EFI_PAGE_SHIFT + BITS_PER_LONG - 32)) > > +static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable) > +{ > + EFI_STATUS status; > + UINTN info_size = 0, map_key, mdesc_size; > + void *memory_map = NULL; > + UINT32 ver; > + unsigned int i; > + > + for ( ; ; ) { In reply to v7 I said: "Nit: Style: for ( ; ; ) { " which you've dealt with just partly. This time I'll take care of this while committing. Also for future patches please remember that having brief per-revision change notes are quite helpful to reviewers. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |