|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status reporting
On 24.03.2026 13:33, Soumyajyotii Ssarkar wrote:
> @@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(struct
> acpi_table_header *table)
> return 0;
> }
>
> +/*
> + * Invalidate BGRT if image is in conventional RAM (preservation failed).
> + * If preservation succeeded, image is in EfiACPIReclaimMemory, which
> + * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
> + */
> static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header
> *table)
> {
> struct acpi_table_bgrt *bgrt_tbl =
> @@ -754,5 +760,7 @@ int __init acpi_boot_init(void)
>
> acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);
>
> + efi_bgrt_status_info();
> +
> return 0;
> }
Does this really need doing from here? If you called it ...
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(unsigned
> long smfn, unsigned long emf
> return true;
> }
>
> +void __init efi_bgrt_status_info(void)
> +{
> + if ( !efi_enabled(EFI_BOOT) )
> + return;
> +
> + if ( bgrt_info.preserved )
> + {
> + printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
> + bgrt_info.size / 1024);
> + printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
> + bgrt_info.old_addr, bgrt_info.new_addr);
> + }
> + else if ( bgrt_info.failure_reason[0] )
> + printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
> + bgrt_info.failure_reason);
> +}
>
> void __init efi_init_memory(void)
> {
... out of this function, it could be static and no stub (misplaced in
the earlier patch) would be needed either.
Furthermore, is the EFI_BOOT check really needed? Without taking either
of the EFI boot paths, neither bgrt_info.preserved nor
bgrt_info.failure_reason[0] would have been altered from their initial
values.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |