]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/remoteproc/remoteproc_virtio.c
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[karo-tx-linux.git] / drivers / remoteproc / remoteproc_virtio.c
index 0142cc3f0c91c6fe98fe4222741819692592b25b..294634836b321d01d2adbf5cd2613b488c5eb44f 100644 (file)
@@ -71,7 +71,7 @@ EXPORT_SYMBOL(rproc_vq_interrupt);
 static struct virtqueue *rp_find_vq(struct virtio_device *vdev,
                                    unsigned int id,
                                    void (*callback)(struct virtqueue *vq),
-                                   const char *name)
+                                   const char *name, bool ctx)
 {
        struct rproc_vdev *rvdev = vdev_to_rvdev(vdev);
        struct rproc *rproc = vdev_to_rproc(vdev);
@@ -103,8 +103,8 @@ static struct virtqueue *rp_find_vq(struct virtio_device *vdev,
         * Create the new vq, and tell virtio we're not interested in
         * the 'weak' smp barriers, since we're talking with a real device.
         */
-       vq = vring_new_virtqueue(id, len, rvring->align, vdev, false, addr,
-                                rproc_virtio_notify, callback, name);
+       vq = vring_new_virtqueue(id, len, rvring->align, vdev, false, ctx,
+                                addr, rproc_virtio_notify, callback, name);
        if (!vq) {
                dev_err(dev, "vring_new_virtqueue %s failed\n", name);
                rproc_free_vring(rvring);
@@ -138,12 +138,14 @@ static int rproc_virtio_find_vqs(struct virtio_device *vdev, unsigned int nvqs,
                                 struct virtqueue *vqs[],
                                 vq_callback_t *callbacks[],
                                 const char * const names[],
+                                const bool * ctx,
                                 struct irq_affinity *desc)
 {
        int i, ret;
 
        for (i = 0; i < nvqs; ++i) {
-               vqs[i] = rp_find_vq(vdev, i, callbacks[i], names[i]);
+               vqs[i] = rp_find_vq(vdev, i, callbacks[i], names[i],
+                                   ctx ? ctx[i] : false);
                if (IS_ERR(vqs[i])) {
                        ret = PTR_ERR(vqs[i]);
                        goto error;