[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3 5/8] xen/arm: preserve DTB mappings



> @@ -295,12 +296,23 @@ void __init setup_pagetables(unsigned long 
> boot_phys_offset, paddr_t xen_paddr)
>      write_pte(xen_second + second_linear_offset(XEN_VIRT_START), pte);
>      /* TLBFLUSH and ISB would be needed here, but wait until we set WXN */
>  
> +    /* preserve the DTB mapping a little while longer */

Not so much "preserve" as "put back" after this function clobbered it.

I'm not convinced by this effectively open coding of a "stack" of
mappings in the BOOT_MISC_VIRT_START slot. IMHO this slot should only be
used for ephemeral mappings within individual functions or over short
spans of code -- otherwise there is plenty of potential for clashes
which lead to hard to decipher bugs.

Can we not map the boot fdt as and when we need it instead of trying to
preserve a mapping? Or maybe FIXMAP_BOOT_FDT?

> +    pte = mfn_to_xen_entry(((unsigned long) _sdtb + boot_phys_offset) >> 
> PAGE_SHIFT);
> +    write_pte(xen_second + second_linear_offset(BOOT_MISC_VIRT_START), pte);

This use of _sdtb is only valid if CONFIG_DTB_FILE. You need to
propagate atag_paddr as passed to start_xen.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.