On Fri, Apr 20, 2018 at 10:23 PM, Michael S. Tsirkin <mst@xxxxxxxxxx> wrote: > Hello! > I note the following in the serial console: > > if (is_rproc_serial(vdev)) { > /* > * Allocate DMA memory from ancestor. When a virtio > * device is created by remoteproc, the DMA memory is > * associated with the grandparent device: > * vdev => rproc => platform-dev. > */ > if (!vdev->dev.parent || !vdev->dev.parent->parent) > goto free_buf; > buf->dev = vdev->dev.parent->parent; > > /* Increase device refcnt to avoid freeing it */ > get_device(buf->dev); > buf->buf = dma_alloc_coherent(buf->dev, buf_size, &buf->dma, > GFP_KERNEL); > } > > Added here: > commit 1b6370463e88b0c1c317de16d7b962acc1dab4f2 > Author: Sjur Brændeland <sjur.brandeland@xxxxxxxxxxxxxx> > Date: Fri Dec 14 14:40:51 2012 +1030 > > virtio_console: Add support for remoteproc serial > > > I am not familiar with rproc so I have a question: > why is it required to use coherent memory here, > and why through a grandparent device? I faced similar issue when I tried VirtIO RPMSG bus over VirtIO MMIO transport. Here's my fix for VirtIO RPMSG bus driver: https://patchwork.kernel.org/patch/10155145/ Regards, Anup _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization