>>> On 29.05.19 at 11:04, <[email protected]> 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.

Jan


Reply via email to