Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eeb0074f authored by Fernando Guzman Lugo's avatar Fernando Guzman Lugo Committed by Ohad Ben-Cohen
Browse files

rpmsg: fix dma_free_coherent dev parameter



dma_alloc/free_coherent APIs requires the platform specific remoteproc
device as the device parameter. We are passing vdev->dev.parent to the
dma_free_coherent function which is the generic rproc device and it is
wrong, it has to be vdev->dev.parent->parent instead, same as when we
call dma_alloc_coherent function.

Signed-off-by: default avatarFernando Guzman Lugo <fernando.lugo@ti.com>
Signed-off-by: default avatarOhad Ben-Cohen <ohad@wizery.com>
parent 55d512e2
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1008,8 +1008,8 @@ static int rpmsg_probe(struct virtio_device *vdev)
	return 0;

free_coherent:
	dma_free_coherent(vdev->dev.parent, RPMSG_TOTAL_BUF_SPACE, bufs_va,
					vrp->bufs_dma);
	dma_free_coherent(vdev->dev.parent->parent, RPMSG_TOTAL_BUF_SPACE,
					bufs_va, vrp->bufs_dma);
vqs_del:
	vdev->config->del_vqs(vrp->vdev);
free_vrp:
@@ -1043,7 +1043,7 @@ static void __devexit rpmsg_remove(struct virtio_device *vdev)

	vdev->config->del_vqs(vrp->vdev);

	dma_free_coherent(vdev->dev.parent, RPMSG_TOTAL_BUF_SPACE,
	dma_free_coherent(vdev->dev.parent->parent, RPMSG_TOTAL_BUF_SPACE,
					vrp->rbufs, vrp->bufs_dma);

	kfree(vrp);