[PATCH] hw: virtio-pmem: detach the element fromt the virtqueue when error occurs

Li Qiang posted 1 patch 3 years, 8 months ago
Test docker-quick@centos7 passed
Test docker-mingw@fedora passed
Test checkpatch passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200813165125.59928-1-liq3ea@163.com
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>
There is a newer version of this series
hw/virtio/virtio-pmem.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
Posted by Li Qiang 3 years, 8 months ago
If error occurs while processing the virtio request we should call
'virtqueue_detach_element' to detach the element from the virtqueue
before free the elem.

Signed-off-by: Li Qiang <liq3ea@163.com>
---
 hw/virtio/virtio-pmem.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
index 1e0c137497..ddb0125901 100644
--- a/hw/virtio/virtio-pmem.c
+++ b/hw/virtio/virtio-pmem.c
@@ -77,6 +77,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
 
     if (req_data->elem.out_num < 1 || req_data->elem.in_num < 1) {
         virtio_error(vdev, "virtio-pmem request not proper");
+        virtqueue_detach_element(vq, (VirtQueueElement *)req_data, 0);
         g_free(req_data);
         return;
     }
-- 
2.17.1


Re: [PATCH] hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
Posted by Pankaj Gupta 3 years, 8 months ago
> If error occurs while processing the virtio request we should call
> 'virtqueue_detach_element' to detach the element from the virtqueue
> before free the elem.
>
> Signed-off-by: Li Qiang <liq3ea@163.com>
> ---
>  hw/virtio/virtio-pmem.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
> index 1e0c137497..ddb0125901 100644
> --- a/hw/virtio/virtio-pmem.c
> +++ b/hw/virtio/virtio-pmem.c
> @@ -77,6 +77,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
>
>      if (req_data->elem.out_num < 1 || req_data->elem.in_num < 1) {
>          virtio_error(vdev, "virtio-pmem request not proper");
> +        virtqueue_detach_element(vq, (VirtQueueElement *)req_data, 0);
>          g_free(req_data);
>          return;
>      }
> --

Reviewed-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>

> 2.17.1
>
>

Re: [PATCH] hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
Posted by Li Qiang 3 years, 8 months ago
Kindly ping.

Li Qiang <liq3ea@163.com> 于2020年8月14日周五 上午12:52写道:
>
> If error occurs while processing the virtio request we should call
> 'virtqueue_detach_element' to detach the element from the virtqueue
> before free the elem.
>
> Signed-off-by: Li Qiang <liq3ea@163.com>
> ---
>  hw/virtio/virtio-pmem.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
> index 1e0c137497..ddb0125901 100644
> --- a/hw/virtio/virtio-pmem.c
> +++ b/hw/virtio/virtio-pmem.c
> @@ -77,6 +77,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
>
>      if (req_data->elem.out_num < 1 || req_data->elem.in_num < 1) {
>          virtio_error(vdev, "virtio-pmem request not proper");
> +        virtqueue_detach_element(vq, (VirtQueueElement *)req_data, 0);
>          g_free(req_data);
>          return;
>      }
> --
> 2.17.1
>
>

Re: [PATCH] hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
Posted by Li Qiang 3 years, 7 months ago
ping!

Li Qiang <liq3ea@gmail.com> 于2020年8月28日周五 上午9:21写道:
>
> Kindly ping.
>
> Li Qiang <liq3ea@163.com> 于2020年8月14日周五 上午12:52写道:
> >
> > If error occurs while processing the virtio request we should call
> > 'virtqueue_detach_element' to detach the element from the virtqueue
> > before free the elem.
> >
> > Signed-off-by: Li Qiang <liq3ea@163.com>
> > ---
> >  hw/virtio/virtio-pmem.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
> > index 1e0c137497..ddb0125901 100644
> > --- a/hw/virtio/virtio-pmem.c
> > +++ b/hw/virtio/virtio-pmem.c
> > @@ -77,6 +77,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
> >
> >      if (req_data->elem.out_num < 1 || req_data->elem.in_num < 1) {
> >          virtio_error(vdev, "virtio-pmem request not proper");
> > +        virtqueue_detach_element(vq, (VirtQueueElement *)req_data, 0);
> >          g_free(req_data);
> >          return;
> >      }
> > --
> > 2.17.1
> >
> >

Re: [PATCH] hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
Posted by Pankaj Gupta 3 years, 7 months ago
Hi Michael,

Please add while applying the patch.

fixes: 5f503cd9f3 ("virtio-pmem: add virtio device")

On Mon, 7 Sep 2020 at 03:38, Li Qiang <liq3ea@gmail.com> wrote:
>
> ping!
>
> Li Qiang <liq3ea@gmail.com> 于2020年8月28日周五 上午9:21写道:
> >
> > Kindly ping.
> >
> > Li Qiang <liq3ea@163.com> 于2020年8月14日周五 上午12:52写道:
> > >
> > > If error occurs while processing the virtio request we should call
> > > 'virtqueue_detach_element' to detach the element from the virtqueue
> > > before free the elem.
> > >
> > > Signed-off-by: Li Qiang <liq3ea@163.com>
> > > ---
> > >  hw/virtio/virtio-pmem.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
> > > index 1e0c137497..ddb0125901 100644
> > > --- a/hw/virtio/virtio-pmem.c
> > > +++ b/hw/virtio/virtio-pmem.c
> > > @@ -77,6 +77,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
> > >
> > >      if (req_data->elem.out_num < 1 || req_data->elem.in_num < 1) {
> > >          virtio_error(vdev, "virtio-pmem request not proper");
> > > +        virtqueue_detach_element(vq, (VirtQueueElement *)req_data, 0);
> > >          g_free(req_data);
> > >          return;
> > >      }
> > > --
> > > 2.17.1
> > >
> > >
>