Merge tag 'rpmsg-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/rpmsg
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / rpmsg / virtio_rpmsg_bus.c
index 07d5ea2ac77ab7dfdf4784b0c8601284e4febd9c..b6135d4d54eb8f6c99dc677c988cc6a95fc2bda7 100644 (file)
@@ -757,14 +757,14 @@ int rpmsg_send_offchannel_raw(struct rpmsg_channel *rpdev, u32 src, u32 dst,
        mutex_lock(&vrp->tx_lock);
 
        /* add message to the remote processor's virtqueue */
-       err = virtqueue_add_buf(vrp->svq, &sg, 1, 0, msg, GFP_KERNEL);
+       err = virtqueue_add_outbuf(vrp->svq, &sg, 1, msg, GFP_KERNEL);
        if (err) {
                /*
                 * need to reclaim the buffer here, otherwise it's lost
                 * (memory won't leak, but rpmsg won't use it again for TX).
                 * this will wait for a buffer management overhaul.
                 */
-               dev_err(dev, "virtqueue_add_buf failed: %d\n", err);
+               dev_err(dev, "virtqueue_add_outbuf failed: %d\n", err);
                goto out;
        }
 
@@ -829,7 +829,7 @@ static int rpmsg_recv_single(struct virtproc_info *vrp, struct device *dev,
        sg_init_one(&sg, msg, RPMSG_BUF_SIZE);
 
        /* add the buffer back to the remote processor's virtqueue */
-       err = virtqueue_add_buf(vrp->rvq, &sg, 0, 1, msg, GFP_KERNEL);
+       err = virtqueue_add_inbuf(vrp->rvq, &sg, 1, msg, GFP_KERNEL);
        if (err < 0) {
                dev_err(dev, "failed to add a virtqueue buffer: %d\n", err);
                return err;
@@ -972,8 +972,10 @@ static int rpmsg_probe(struct virtio_device *vdev)
        bufs_va = dma_alloc_coherent(vdev->dev.parent->parent,
                                RPMSG_TOTAL_BUF_SPACE,
                                &vrp->bufs_dma, GFP_KERNEL);
-       if (!bufs_va)
+       if (!bufs_va) {
+               err = -ENOMEM;
                goto vqs_del;
+       }
 
        dev_dbg(&vdev->dev, "buffers: va %p, dma 0x%llx\n", bufs_va,
                                        (unsigned long long)vrp->bufs_dma);
@@ -991,7 +993,7 @@ static int rpmsg_probe(struct virtio_device *vdev)
 
                sg_init_one(&sg, cpu_addr, RPMSG_BUF_SIZE);
 
-               err = virtqueue_add_buf(vrp->rvq, &sg, 0, 1, cpu_addr,
+               err = virtqueue_add_inbuf(vrp->rvq, &sg, 1, cpu_addr,
                                                                GFP_KERNEL);
                WARN_ON(err); /* sanity check; this can't really happen */
        }