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: Fernando Guzman Lugo <fernando.lugo@ti.com> Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
This commit is contained in:
Родитель
55d512e245
Коммит
eeb0074f36
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче