[PATCH v3 2/3] xen/arm: reimplement xen_dma_unmap_page & friends

Thomas Leonard talex5 at gmail.com
Fri Aug 8 07:49:26 PDT 2014


On 8 August 2014 15:38, Wei Liu <wei.liu2 at citrix.com> wrote:
> On Fri, Aug 08, 2014 at 03:32:41PM +0100, Stefano Stabellini wrote:
>> On Fri, 1 Aug 2014, Stefano Stabellini wrote:
>> > +static void __xen_dma_page_dev_to_cpu(struct device *hwdev, dma_addr_t handle,
>> > +           size_t size, enum dma_data_direction dir)
>> > +{
>> > +   /* Cannot use __dma_page_dev_to_cpu because we don't have a
>> > +    * struct page for handle */
>> > +
>> > +   if (dir == DMA_TO_DEVICE)
>>
>> This should be:
>>     if (dir != DMA_TO_DEVICE)
>>
>> Thomas, could you please confirm that with this small fix
>> http://pastebin.com/FPRf7pgL goes away?
>>
>
> Thomas, please try this fix with my ref-counting patch.
>
> The old "working" version might actually cover this latent bug due to
> it's long delay.

I'm not sure how to apply this. The function
"__xen_dma_page_dev_to_cpu" doesn't appear in your "for-thomas"
branch. If you push the change to that branch I can test it.

> Wei.
>
>>
>> > +           outer_inv_range(handle, handle + size);
>> > +
>> > +   dma_cache_maint(handle & PAGE_MASK, handle & ~PAGE_MASK, size, dir, dmac_unmap_area);
>> > +}



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA



More information about the linux-arm-kernel mailing list