diff mbox series

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

Message ID 20200813165125.59928-1-liq3ea@163.com (mailing list archive)
State New, archived
Headers show
Series hw: virtio-pmem: detach the element fromt the virtqueue when error occurs | expand

Commit Message

Li Qiang Aug. 13, 2020, 4:51 p.m. UTC
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(+)

Comments

Pankaj Gupta Aug. 17, 2020, 12:17 p.m. UTC | #1
> 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
>
>
Li Qiang Aug. 28, 2020, 1:21 a.m. UTC | #2
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
>
>
Li Qiang Sept. 7, 2020, 1:37 a.m. UTC | #3
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
> >
> >
Pankaj Gupta Sept. 10, 2020, 8:45 a.m. UTC | #4
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
> > >
> > >
>
diff mbox series

Patch

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;
     }