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

Wei Liu wei.liu2 at citrix.com
Fri Aug 8 07:38:51 PDT 2014


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.

Wei.

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



More information about the linux-arm-kernel mailing list