mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/arm: domain_build: Use copy_to_guest_phys_flush_dcache in dtb_load
The function dtb_load is dealing with IPA but uses gvirt_to_maddr to do the translation. This is currently working fine because the stage-1 MMU is disabled. Rather than relying on such assumption, use the new copy_to_guest_phys_flush_dcache. This also result to a slightly more comprehensible code. Signed-off-by: Julien Grall <julien.grall@linaro.org> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
1 parent
bb7e6d565d
commit
9292086564
1 file changed
+4
-3
@@ -1950,14 +1950,15 @@ static int prepare_acpi(struct domain *d, struct kernel_info *kinfo)
|
||||
#endif
|
||||
static void dtb_load(struct kernel_info *kinfo)
|
||||
{
|
||||
void * __user dtb_virt = (void * __user)(register_t)kinfo->dtb_paddr;
|
||||
unsigned long left;
|
||||
|
||||
printk("Loading dom0 DTB to 0x%"PRIpaddr"-0x%"PRIpaddr"\n",
|
||||
kinfo->dtb_paddr, kinfo->dtb_paddr + fdt_totalsize(kinfo->fdt));
|
||||
|
||||
left = raw_copy_to_guest_flush_dcache(dtb_virt, kinfo->fdt,
|
||||
fdt_totalsize(kinfo->fdt));
|
||||
left = copy_to_guest_phys_flush_dcache(kinfo->d, kinfo->dtb_paddr,
|
||||
kinfo->fdt,
|
||||
fdt_totalsize(kinfo->fdt));
|
||||
|
||||
if ( left != 0 )
|
||||
panic("Unable to copy the DTB to dom0 memory (left = %lu bytes)", left);
|
||||
xfree(kinfo->fdt);
|
||||
|
||||