On 2016年03月23日 00:16, Julien Grall wrote: > Hi Shannon, > > On 22/03/16 13:18, Shannon Zhao wrote: >> On 2016年03月22日 08:42, Julien Grall wrote: >>> Hi Shannon, >>> >>> On 17/03/2016 09:40, Shannon Zhao wrote: >>>> From: Shannon Zhao <shannon.z...@linaro.org> >>>> >>>> Map the UEFI and ACPI tables which we created to non-RAM space in Dom0. >>>> >>>> Signed-off-by: Shannon Zhao <shannon.z...@linaro.org> >>>> Reviewed-by: Stefano Stabellini <stefano.stabell...@eu.citrix.com> >>>> --- >>>> xen/arch/arm/domain_build.c | 15 +++++++++++++++ >>>> 1 file changed, 15 insertions(+) >>>> >>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c >>>> index 008fc76..e036887 100644 >>>> --- a/xen/arch/arm/domain_build.c >>>> +++ b/xen/arch/arm/domain_build.c >>>> @@ -1691,6 +1691,21 @@ static int prepare_acpi(struct domain *d, >>>> struct kernel_info *kinfo) >>>> acpi_create_efi_mmap_table(d->arch.efi_acpi_gpa, >>>> d->arch.efi_acpi_len, >>>> d->arch.efi_acpi_table, &kinfo->mem, >>>> tbl_add); >>>> >>>> + /* Map the EFI and ACPI tables to Dom0 */ >>>> + rc = map_regions_rw(d, >>>> + paddr_to_pfn(d->arch.efi_acpi_gpa), >>>> + PFN_UP(d->arch.efi_acpi_len), >>>> + >>>> paddr_to_pfn(virt_to_maddr(d->arch.efi_acpi_table))); >>> >>> The ACPI/EFI tables could potentially have data in the cache but are not >>> written into the memory (because Xen is mapping the RAM with caching >>> enabled). However, DOM0 may decide to map it with cache disabled. >>> Therefore it would be possible for the domain to see wrong data. >>> >>> So I think you need to clean the cache for this region. >> Oh, that would be good. Is there any existing function I can use? > > You could reuse p2m_cache_flush. However this function will only flush > cache for p2m_ram_* entries. > > I think the best way would be to extend the CACHEFLUSH operations and > maybe p2m_cache_flush (?). So it needs to extend the CACHEFLUSH case to handle the p2m_mmio_direct entry, right?
BTW, does the case you said exist? Before xen switches to Dom0, will it invalid the cache? Thanks, -- Shannon _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel