|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Ping: [PATCH 3/3] x86/EFI: don't accept 64-bit base relocations on page tables
>>> On 19.08.16 at 09:52, <JBeulich@xxxxxxxx> wrote:
> Page tables get pre-populated with physical addresses which, due to
> living inside the Xen image, will never exceed 32 bits in width. That
> in turn results in the tool generating the relocations to produce
> 32-bit relocations for them instead of the 64-bit ones needed for
> relocating virtual addresses. Hence instead of special casing page
> tables in the processing of 64-bit relocations, let's be more rigid
> and refuse them (as being indicative of something else having gone
> wrong in the build process).
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Ping?
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -81,12 +81,9 @@ static void __init efi_arch_relocate_ima
> }
> break;
> case PE_BASE_RELOC_DIR64:
> - if ( delta )
> - {
> - *(u64 *)addr += delta;
> - if ( in_page_tables(addr) )
> - *(intpte_t *)addr += xen_phys_start;
> - }
> + if ( in_page_tables(addr) )
> + blexit(L"Unexpected relocation type");
> + *(u64 *)addr += delta;
> break;
> default:
> blexit(L"Unsupported relocation type");
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |