Re: [PATCH RESEND] rpmsg: virtio_rpmsg_bus: fix rpmsg_probe() for virtio-mmio transport

From: Bjorn Andersson
Date: Sun Mar 18 2018 - 18:47:51 EST


On Wed 10 Jan 05:16 PST 2018, Anup Patel wrote:
> diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
[..]
> @@ -924,9 +925,16 @@ static int rpmsg_probe(struct virtio_device *vdev)
> total_buf_space, &vrp->bufs_dma,
> GFP_KERNEL);
> if (!bufs_va) {
> - err = -ENOMEM;
> - goto vqs_del;
> - }
> + bufs_va = dma_alloc_coherent(vdev->dev.parent,
> + total_buf_space, &vrp->bufs_dma,
> + GFP_KERNEL);
> + if (!bufs_va) {
> + err = -ENOMEM;
> + goto vqs_del;
> + } else
> + vrp->bufs_dev = vdev->dev.parent;
> + } else
> + vrp->bufs_dev = vdev->dev.parent->parent;

I really don't fancy the idea of us allocating on behalf of our
grandparent here, as you show it's not certain that our grandparent is
what someone originally expected it to be.

With the purpose of being able to control these allocations there is an
ongoing discussion related to this, which I believe will result in this
being changed to at least vdev->dev.parent..


I do expect that this discussion will be brought up during Linaro
Connect the coming week.

Regards,
Bjorn