Re: [Xen-devel] [PATCH v2 3/3] xen/swiotlb: remember having called xen_create_contiguous_region()

From: Juergen Gross
Date: Wed May 29 2019 - 06:25:10 EST


On 29/05/2019 11:57, Jan Beulich wrote:
>>>> On 29.05.19 at 11:04, <jgross@xxxxxxxx> wrote:
>> @@ -345,8 +346,11 @@ xen_swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
>> size = 1UL << (order + XEN_PAGE_SHIFT);
>>
>> if (!WARN_ON((dev_addr + size - 1 > dma_mask) ||
>> - range_straddles_page_boundary(phys, size)))
>> + range_straddles_page_boundary(phys, size)) &&
>> + PageXenRemapped(virt_to_page(vaddr))) {
>> xen_destroy_contiguous_region(phys, order);
>> + ClearPageXenRemapped(virt_to_page(vaddr));
>> + }
>
> To be symmetric with setting the flag only after having made the region
> contiguous, and to avoid (perhaps just theoretical) races, wouldn't it be
> better to clear the flag before calling xen_destroy_contiguous_region()?
> Even better would be a TestAndClear...() operation.

I like that idea.


Juergen