Re: [RFC] virtio_ring: check dma_mem for xen_domain

From: Michael S. Tsirkin
Date: Mon Jan 21 2019 - 21:36:46 EST


On Mon, Jan 21, 2019 at 12:28:30AM -0800, hch@xxxxxxxxxxxxx wrote:
> On Mon, Jan 21, 2019 at 04:51:57AM +0000, Peng Fan wrote:
> > on i.MX8QM, M4_1 is communicating with DomU using rpmsg with a fixed
> > address as the dma mem buffer which is predefined.
> >
> > Without this patch, the flow is:
> > vring_map_one_sg -> vring_use_dma_api
> > -> dma_map_page
> > -> __swiotlb_map_page
> > ->swiotlb_map_page
> > ->__dma_map_area(phys_to_virt(dma_to_phys(dev, dev_addr)), size, dir);
> > However we are using per device dma area for rpmsg, phys_to_virt
> > could not return a correct virtual address for virtual address in
> > vmalloc area. Then kernel panic.
>
> And that is the right thing to do. You must not call dma_map_* on
> memory that was allocated from dma_alloc_*.
>
> We actually have another thread which appears to be for this same issue.

Sorry, which thread do you refer to?

--
MST