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?

Thanks,
-- 
Shannon

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

Reply via email to