[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/3] x86/EFI: don't apply relocations to l{2, 3}_bootmap
On 19/08/16 08:50, Jan Beulich wrote: > Other than claimed in commit 2ce5963727's ("x86: construct the > {l2,l3}_bootmap at compile time") the initialization of the two page > tables doesn't take care of everything without furher adjustment: The > compile time initialization obviously requires base relocations, and > those get processed after efi_arch_memory_setup(). Hence without > additional care the correctly initialized values may then get wrongly > "adjusted" again. Except the two table from being subject to base > relocation. Do you mean Exempt? "Except the two tables" doesn't parse. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> > > --- a/xen/arch/x86/efi/efi-boot.h > +++ b/xen/arch/x86/efi/efi-boot.h > @@ -47,11 +47,23 @@ static void __init efi_arch_relocate_ima > > for ( base_relocs = __base_relocs_start; base_relocs < > __base_relocs_end; ) > { > - unsigned int i, n; > + unsigned int i = 0, n; > > n = (base_relocs->size - sizeof(*base_relocs)) / > sizeof(*base_relocs->entries); > - for ( i = 0; i < n; ++i ) > + > + /* > + * Relevant l{2,3}_bootmap entries get initialized explicitly in > + * efi_arch_memory_setup(), so we must not apply relocations there. > + * l2_identmap's first slot, otoh, should be handled normally, as And l3 surely? Reviewed-by: Andrew Cooper <andrew.cooper@xxxxxxxxxx> > + * efi_arch_memory_setup() won't touch it (xen_phys_start should > + * never be zero). > + */ > + if ( xen_phys_start + base_relocs->rva == (unsigned long)l3_bootmap > || > + xen_phys_start + base_relocs->rva == (unsigned long)l2_bootmap ) > + i = n; > + > + for ( ; i < n; ++i ) > { > unsigned long addr = xen_phys_start + base_relocs->rva + > (base_relocs->entries[i] & 0xfff); > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |