Displaying 20 results from an estimated 33 matches for "virtio_rpmsg_request".
2020 Sep 10
0
[PATCH v7 3/3] vhost: add an RPMsg API
...othing new? */
+ if (head == vq->num)
+ return head;
+
+ if (vq == &vr->vq[VIRTIO_RPMSG_RESPONSE]) {
+ if (out) {
+ vq_err(vq, "%s(): invalid %d output in response queue\n",
+ __func__, out);
+ goto return_buf;
+ }
+
+ *cnt = in;
+ }
+
+ if (vq == &vr->vq[VIRTIO_RPMSG_REQUEST]) {
+ if (in) {
+ vq_err(vq, "%s(): invalid %d input in request queue\n",
+ __func__, in);
+ goto return_buf;
+ }
+
+ *cnt = out;
+ }
+
+ return head;
+
+return_buf:
+ vhost_add_used(vq, head, 0);
+
+ return -EINVAL;
+}
+
+static const struct vhost_rpmsg_ept *vhost_rpmsg_ep...
2020 May 27
0
[PATCH v3 5/5] vhost: add an RPMsg API
...if (head == vq->num)
+ return head;
+
+ if (vq == &vr->vq[VIRTIO_RPMSG_RESPONSE] && (out || in != 1)) {
+ vq_err(vq,
+ "%s(): invalid %d input and %d output in response queue\n",
+ __func__, in, out);
+ goto return_buf;
+ }
+
+ if (vq == &vr->vq[VIRTIO_RPMSG_REQUEST] && (in || out != 1)) {
+ vq_err(vq,
+ "%s(): invalid %d input and %d output in request queue\n",
+ __func__, in, out);
+ goto return_buf;
+ }
+
+ return head;
+
+return_buf:
+ /*
+ * FIXME: might need to return the buffer using vhost_add_used()
+ * or vhost_di...
2020 Jul 22
0
[PATCH v4 4/4] vhost: add an RPMsg API
...if (head == vq->num)
+ return head;
+
+ if (vq == &vr->vq[VIRTIO_RPMSG_RESPONSE] && (out || in != 1)) {
+ vq_err(vq,
+ "%s(): invalid %d input and %d output in response queue\n",
+ __func__, in, out);
+ goto return_buf;
+ }
+
+ if (vq == &vr->vq[VIRTIO_RPMSG_REQUEST] && (in || out != 1)) {
+ vq_err(vq,
+ "%s(): invalid %d input and %d output in request queue\n",
+ __func__, in, out);
+ goto return_buf;
+ }
+
+ return head;
+
+return_buf:
+ /*
+ * FIXME: might need to return the buffer using vhost_add_used()
+ * or vhost_di...
2020 Sep 10
6
[PATCH v7 0/3] Add a vhost RPMsg API
Hi,
Next update:
v7:
- remove documentation update to be send separately
- address comments from Mathieu Poirier (thanks)
v6:
- rename include/linux/virtio_rpmsg.h -> include/linux/rpmsg/virtio.h
v5:
- don't hard-code message layout
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
2020 Sep 10
6
[PATCH v7 0/3] Add a vhost RPMsg API
Hi,
Next update:
v7:
- remove documentation update to be send separately
- address comments from Mathieu Poirier (thanks)
v6:
- rename include/linux/virtio_rpmsg.h -> include/linux/rpmsg/virtio.h
v5:
- don't hard-code message layout
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
2020 Sep 18
0
[PATCH v7 3/3] vhost: add an RPMsg API
...ESPONSE]) {
> > + if (out) {
> > + vq_err(vq, "%s(): invalid %d output in response queue\n",
> > + __func__, out);
> > + goto return_buf;
> > + }
> > +
> > + *cnt = in;
> > + }
> > +
> > + if (vq == &vr->vq[VIRTIO_RPMSG_REQUEST]) {
> > + if (in) {
> > + vq_err(vq, "%s(): invalid %d input in request queue\n",
> > + __func__, in);
> > + goto return_buf;
> > + }
> > +
> > + *cnt = out;
> > + }
> > +
> > + return head;
> > +
> > +...
2020 Sep 10
0
[PATCH v5 4/4] vhost: add an RPMsg API
...ESPONSE]) {
> > + if (out) {
> > + vq_err(vq, "%s(): invalid %d output in response queue\n",
> > + __func__, out);
> > + goto return_buf;
> > + }
> > +
> > + *cnt = in;
> > + }
> > +
> > + if (vq == &vr->vq[VIRTIO_RPMSG_REQUEST]) {
> > + if (in) {
> > + vq_err(vq, "%s(): invalid %d input in request queue\n",
> > + __func__, in);
> > + goto return_buf;
> > + }
> > +
> > + *cnt = out;
> > + }
> > +
> > + return head;
> > +
> > +...
2020 Aug 04
2
[PATCH v4 4/4] vhost: add an RPMsg API
...out.
virtio spec says to avoid these. Using iov iters it's not too hard to do
...
> + vq_err(vq,
> + "%s(): invalid %d input and %d output in response queue\n",
> + __func__, in, out);
> + goto return_buf;
> + }
> +
> + if (vq == &vr->vq[VIRTIO_RPMSG_REQUEST] && (in || out != 1)) {
> + vq_err(vq,
> + "%s(): invalid %d input and %d output in request queue\n",
> + __func__, in, out);
> + goto return_buf;
> + }
> +
> + return head;
> +
> +return_buf:
> + /*
> + * FIXME: might need to re...
2020 Aug 04
2
[PATCH v4 4/4] vhost: add an RPMsg API
...out.
virtio spec says to avoid these. Using iov iters it's not too hard to do
...
> + vq_err(vq,
> + "%s(): invalid %d input and %d output in response queue\n",
> + __func__, in, out);
> + goto return_buf;
> + }
> +
> + if (vq == &vr->vq[VIRTIO_RPMSG_REQUEST] && (in || out != 1)) {
> + vq_err(vq,
> + "%s(): invalid %d input and %d output in request queue\n",
> + __func__, in, out);
> + goto return_buf;
> + }
> +
> + return head;
> +
> +return_buf:
> + /*
> + * FIXME: might need to re...
2020 May 25
6
[PATCH v2 0/5] Add a vhost RPMsg API
v2:
- remove "default n" from Kconfig
- drop patch #6 - it depends on a different patch, that is currently
an RFC
- update patch #5 with a correct vhost_dev_init() prototype
Linux supports RPMsg over VirtIO for "remote processor" /AMP use
cases. It can however also be used for virtualisation scenarios,
e.g. when using KVM to run Linux on both the host and the guests.
This
2020 Sep 21
0
[PATCH v7 3/3] vhost: add an RPMsg API
...; > > + */
> > > > +static bool handle_rpmsg_req_single(struct vhost_rpmsg *vr,
> > > > + struct vhost_virtqueue *vq)
> > > > +{
> > > > + struct vhost_rpmsg_iter iter;
> > > > + int ret = vhost_rpmsg_start_lock(vr, &iter, VIRTIO_RPMSG_REQUEST, -EINVAL);
> > > > + if (!ret)
> > > > + ret = vhost_rpmsg_finish_unlock(vr, &iter);
> > > > + if (ret < 0) {
> > > > + if (ret != -EAGAIN)
> > > > + vq_err(vq, "%s(): RPMSG processing failed %d\n",
> > > >...
2020 Sep 17
1
[PATCH v7 3/3] vhost: add an RPMsg API
...@@ -302,8 +302,14 @@ static void handle_rpmsg_req_kick(struct vhost_work *work)
struct vhost_virtqueue *vq = container_of(work, struct vhost_virtqueue,
poll.work);
struct vhost_rpmsg *vr = container_of(vq->dev, struct vhost_rpmsg, dev);
+ struct vhost_virtqueue *reqvq = vr->vq + VIRTIO_RPMSG_REQUEST;
- while (handle_rpmsg_req_single(vr, vq))
+ /*
+ * The !vhost_vq_avail_empty() check is needed since the vhost_rpmsg*
+ * APIs don't check the return value of vhost_enable_notify() and retry
+ * if there were buffers added while notifications were disabled.
+ */
+ while (handle_rpmsg_req...
2020 Jul 22
13
[PATCH v4 0/4] Add a vhost RPMsg API
Hi,
Now that virtio-rpmsg endianness fixes have been merged we can
proceed with the next step.
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
- update patch #5 with a correct vhost_dev_init() prototype
- drop patch #6 - it depends on a different patch, that is currently
an RFC
-
2020 Jul 22
13
[PATCH v4 0/4] Add a vhost RPMsg API
Hi,
Now that virtio-rpmsg endianness fixes have been merged we can
proceed with the next step.
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
- update patch #5 with a correct vhost_dev_init() prototype
- drop patch #6 - it depends on a different patch, that is currently
an RFC
-
2020 May 16
9
[PATCH 0/6] Add a vhost RPMsg API
Linux supports RPMsg over VirtIO for "remote processor" /AMP use
cases. It can however also be used for virtualisation scenarios,
e.g. when using KVM to run Linux on both the host and the guests.
This patch set adds a wrapper API to facilitate writing vhost
drivers for such RPMsg-based solutions. The first use case is an
audio DSP virtualisation project, currently under development,
2020 May 16
9
[PATCH 0/6] Add a vhost RPMsg API
Linux supports RPMsg over VirtIO for "remote processor" /AMP use
cases. It can however also be used for virtualisation scenarios,
e.g. when using KVM to run Linux on both the host and the guests.
This patch set adds a wrapper API to facilitate writing vhost
drivers for such RPMsg-based solutions. The first use case is an
audio DSP virtualisation project, currently under development,
2020 Aug 26
12
[PATCH v5 0/4] Add a vhost RPMsg API
Hi,
Next update:
v5:
- don't hard-code message layout
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
- update patch #5 with a correct vhost_dev_init() prototype
- drop patch #6 - it depends on a different patch, that is currently
an RFC
- address comments from Pierre-Louis Bossart:
2020 Aug 26
12
[PATCH v5 0/4] Add a vhost RPMsg API
Hi,
Next update:
v5:
- don't hard-code message layout
v4:
- add endianness conversions to comply with the VirtIO standard
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
- update patch #5 with a correct vhost_dev_init() prototype
- drop patch #6 - it depends on a different patch, that is currently
an RFC
- address comments from Pierre-Louis Bossart:
2020 May 27
10
[PATCH v3 0/5] Add a vhost RPMsg API
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
- update patch #5 with a correct vhost_dev_init() prototype
- drop patch #6 - it depends on a different patch, that is currently
an RFC
- address comments from Pierre-Louis Bossart:
* remove "default n" from Kconfig
Linux supports RPMsg over VirtIO for "remote processor" /AMP use
cases.
2020 May 27
10
[PATCH v3 0/5] Add a vhost RPMsg API
v3:
- address several checkpatch warnings
- address comments from Mathieu Poirier
v2:
- update patch #5 with a correct vhost_dev_init() prototype
- drop patch #6 - it depends on a different patch, that is currently
an RFC
- address comments from Pierre-Louis Bossart:
* remove "default n" from Kconfig
Linux supports RPMsg over VirtIO for "remote processor" /AMP use
cases.