[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V5 02/15] Move x86 specific funtions/variables to arch header
On Fri, 2014-09-19 at 09:37 +0100, Jan Beulich wrote: > >>> On 19.09.14 at 00:49, <roy.franz@xxxxxxxxxx> wrote: > > @@ -687,82 +645,6 @@ static int __init set_color(u32 mask, int bpp, u8 > > *pos, u8 *sz) > > return max(*pos + *sz, bpp); > > } > > > > -extern const intpte_t __page_tables_start[], __page_tables_end[]; > > -#define in_page_tables(v) ((intpte_t *)(v) >= __page_tables_start && \ > > - (intpte_t *)(v) < __page_tables_end) > > - > > -#define PE_BASE_RELOC_ABS 0 > > -#define PE_BASE_RELOC_HIGHLOW 3 > > -#define PE_BASE_RELOC_DIR64 10 > > - > > -extern const struct pe_base_relocs { > > - u32 rva; > > - u32 size; > > - u16 entries[]; > > -} __base_relocs_start[], __base_relocs_end[]; > > - > > -static void __init relocate_image(unsigned long delta) > > -{ > > - const struct pe_base_relocs *base_relocs; > > - > > - for ( base_relocs = __base_relocs_start; base_relocs < > > __base_relocs_end; ) > > - { > > - unsigned int i, n; > > - > > - n = (base_relocs->size - sizeof(*base_relocs)) / > > - sizeof(*base_relocs->entries); > > - for ( i = 0; i < n; ++i ) > > - { > > - unsigned long addr = xen_phys_start + base_relocs->rva + > > - (base_relocs->entries[i] & 0xfff); > > - > > - switch ( base_relocs->entries[i] >> 12 ) > > - { > > - case PE_BASE_RELOC_ABS: > > - break; > > - case PE_BASE_RELOC_HIGHLOW: > > - if ( delta ) > > - { > > - *(u32 *)addr += delta; > > - if ( in_page_tables(addr) ) > > - *(u32 *)addr += xen_phys_start; > > - } > > - break; > > - case PE_BASE_RELOC_DIR64: > > - if ( delta ) > > - { > > - *(u64 *)addr += delta; > > - if ( in_page_tables(addr) ) > > - *(intpte_t *)addr += xen_phys_start; > > - } > > - break; > > - default: > > - blexit(L"Unsupported relocation type"); > > - } > > - } > > - base_relocs = (const void *)(base_relocs->entries + i + (i & 1)); > > - } > > -} > > Hmm, so you're still moving the relocation processing code - why? I > don't recall you having said you're sure you'll not need this on ARM. ARM relocates itself to the top of memory during bringup already. I don't think we need to do it here as well/instead. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |