diff options
| author | Fernando Guzman Lugo <fernando.lugo@ti.com> | 2012-08-29 20:24:52 -0400 |
|---|---|---|
| committer | Ohad Ben-Cohen <ohad@wizery.com> | 2012-09-12 05:03:57 -0400 |
| commit | eeb0074f36d1ab0729d06f1c56add9c7799679e2 (patch) | |
| tree | ae72e84c577b99d3d2c485a1eed93f55f53cf8f0 /drivers/rpmsg | |
| parent | 55d512e245bc7699a8800e23df1a24195dd08217 (diff) | |
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>
Diffstat (limited to 'drivers/rpmsg')
| -rw-r--r-- | drivers/rpmsg/virtio_rpmsg_bus.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c index 590cfafc7c17..1859f71372e2 100644 --- a/drivers/rpmsg/virtio_rpmsg_bus.c +++ b/drivers/rpmsg/virtio_rpmsg_bus.c | |||
| @@ -1008,8 +1008,8 @@ static int rpmsg_probe(struct virtio_device *vdev) | |||
| 1008 | return 0; | 1008 | return 0; |
| 1009 | 1009 | ||
| 1010 | free_coherent: | 1010 | free_coherent: |
| 1011 | dma_free_coherent(vdev->dev.parent, RPMSG_TOTAL_BUF_SPACE, bufs_va, | 1011 | dma_free_coherent(vdev->dev.parent->parent, RPMSG_TOTAL_BUF_SPACE, |
| 1012 | vrp->bufs_dma); | 1012 | bufs_va, vrp->bufs_dma); |
| 1013 | vqs_del: | 1013 | vqs_del: |
| 1014 | vdev->config->del_vqs(vrp->vdev); | 1014 | vdev->config->del_vqs(vrp->vdev); |
| 1015 | free_vrp: | 1015 | free_vrp: |
| @@ -1043,7 +1043,7 @@ static void __devexit rpmsg_remove(struct virtio_device *vdev) | |||
| 1043 | 1043 | ||
| 1044 | vdev->config->del_vqs(vrp->vdev); | 1044 | vdev->config->del_vqs(vrp->vdev); |
| 1045 | 1045 | ||
| 1046 | dma_free_coherent(vdev->dev.parent, RPMSG_TOTAL_BUF_SPACE, | 1046 | dma_free_coherent(vdev->dev.parent->parent, RPMSG_TOTAL_BUF_SPACE, |
| 1047 | vrp->rbufs, vrp->bufs_dma); | 1047 | vrp->rbufs, vrp->bufs_dma); |
| 1048 | 1048 | ||
| 1049 | kfree(vrp); | 1049 | kfree(vrp); |
