diff mbox

[1/6] virtio-bus: Drop "set_handler" parameter

Message ID 1468300800-31256-2-git-send-email-famz@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Fam Zheng July 12, 2016, 5:19 a.m. UTC
It always equals to assign now.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 hw/virtio/virtio-bus.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

Comments

Cornelia Huck July 12, 2016, 9:09 a.m. UTC | #1
On Tue, 12 Jul 2016 13:19:55 +0800
Fam Zheng <famz@redhat.com> wrote:

> It always equals to assign now.

I think this needs further elaboration...

> 
> Signed-off-by: Fam Zheng <famz@redhat.com>
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  hw/virtio/virtio-bus.c | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
> 

> @@ -167,7 +166,7 @@ static int set_host_notifier_internal(DeviceState *proxy, VirtioBusState *bus,
>              error_report("%s: unable to init event notifier: %d", __func__, r);
>              return r;
>          }
> -        virtio_queue_set_host_notifier_fd_handler(vq, true, set_handler);
> +        virtio_queue_set_host_notifier_fd_handler(vq, true, true);
>          r = k->ioeventfd_assign(proxy, notifier, n, assign);
>          if (r < 0) {
>              error_report("%s: unable to assign ioeventfd: %d", __func__, r);

> @@ -269,7 +268,7 @@ int virtio_bus_set_host_notifier(VirtioBusState *bus, int n, bool assign)
>           */
>          virtio_bus_stop_ioeventfd(bus);
>      }
> -    return set_host_notifier_internal(proxy, bus, n, assign, false);
> +    return set_host_notifier_internal(proxy, bus, n, assign);

...because this changes the behaviour for assign==true.

>  }
> 
>  static char *virtio_bus_get_dev_path(DeviceState *dev)
Fam Zheng July 12, 2016, 9:16 a.m. UTC | #2
On Tue, 07/12 11:09, Cornelia Huck wrote:
> On Tue, 12 Jul 2016 13:19:55 +0800
> Fam Zheng <famz@redhat.com> wrote:
> 
> > It always equals to assign now.
> 
> I think this needs further elaboration...
> 
> > 
> > Signed-off-by: Fam Zheng <famz@redhat.com>
> > Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> > ---
> >  hw/virtio/virtio-bus.c | 13 ++++++-------
> >  1 file changed, 6 insertions(+), 7 deletions(-)
> > 
> 
> > @@ -167,7 +166,7 @@ static int set_host_notifier_internal(DeviceState *proxy, VirtioBusState *bus,
> >              error_report("%s: unable to init event notifier: %d", __func__, r);
> >              return r;
> >          }
> > -        virtio_queue_set_host_notifier_fd_handler(vq, true, set_handler);
> > +        virtio_queue_set_host_notifier_fd_handler(vq, true, true);
> >          r = k->ioeventfd_assign(proxy, notifier, n, assign);
> >          if (r < 0) {
> >              error_report("%s: unable to assign ioeventfd: %d", __func__, r);
> 
> > @@ -269,7 +268,7 @@ int virtio_bus_set_host_notifier(VirtioBusState *bus, int n, bool assign)
> >           */
> >          virtio_bus_stop_ioeventfd(bus);
> >      }
> > -    return set_host_notifier_internal(proxy, bus, n, assign, false);
> > +    return set_host_notifier_internal(proxy, bus, n, assign);
> 
> ...because this changes the behaviour for assign==true.

Oh this is the one I overlook in rebase because it wasn't present with your
refactoring but it is now back in commit 0830c96d70b.

Good catch, I need to fix this, and therefore Stefan's r-b shouldn't have been
kept along.

Fam

> 
> >  }
> > 
> >  static char *virtio_bus_get_dev_path(DeviceState *dev)
>
Cornelia Huck July 12, 2016, 9:21 a.m. UTC | #3
On Tue, 12 Jul 2016 17:16:42 +0800
Fam Zheng <famz@redhat.com> wrote:

> On Tue, 07/12 11:09, Cornelia Huck wrote:
> > On Tue, 12 Jul 2016 13:19:55 +0800

> > > @@ -269,7 +268,7 @@ int virtio_bus_set_host_notifier(VirtioBusState *bus, int n, bool assign)
> > >           */
> > >          virtio_bus_stop_ioeventfd(bus);
> > >      }
> > > -    return set_host_notifier_internal(proxy, bus, n, assign, false);
> > > +    return set_host_notifier_internal(proxy, bus, n, assign);
> > 
> > ...because this changes the behaviour for assign==true.
> 
> Oh this is the one I overlook in rebase because it wasn't present with your
> refactoring but it is now back in commit 0830c96d70b.

Yes, we need to come up with a proper solution, but I currently don't
see this for 2.7.

> 
> Good catch, I need to fix this, and therefore Stefan's r-b shouldn't have been
> kept along.

The whole host notifier stuff is good at causing headaches :(
diff mbox

Patch

diff --git a/hw/virtio/virtio-bus.c b/hw/virtio/virtio-bus.c
index a85b7c8..8700de0 100644
--- a/hw/virtio/virtio-bus.c
+++ b/hw/virtio/virtio-bus.c
@@ -150,10 +150,9 @@  void virtio_bus_set_vdev_config(VirtioBusState *bus, uint8_t *config)
  * This function handles both assigning the ioeventfd handler and
  * registering it with the kernel.
  * assign: register/deregister ioeventfd with the kernel
- * set_handler: use the generic ioeventfd handler
  */
 static int set_host_notifier_internal(DeviceState *proxy, VirtioBusState *bus,
-                                      int n, bool assign, bool set_handler)
+                                      int n, bool assign)
 {
     VirtIODevice *vdev = virtio_bus_get_device(bus);
     VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(bus);
@@ -167,7 +166,7 @@  static int set_host_notifier_internal(DeviceState *proxy, VirtioBusState *bus,
             error_report("%s: unable to init event notifier: %d", __func__, r);
             return r;
         }
-        virtio_queue_set_host_notifier_fd_handler(vq, true, set_handler);
+        virtio_queue_set_host_notifier_fd_handler(vq, true, true);
         r = k->ioeventfd_assign(proxy, notifier, n, assign);
         if (r < 0) {
             error_report("%s: unable to assign ioeventfd: %d", __func__, r);
@@ -201,7 +200,7 @@  void virtio_bus_start_ioeventfd(VirtioBusState *bus)
         if (!virtio_queue_get_num(vdev, n)) {
             continue;
         }
-        r = set_host_notifier_internal(proxy, bus, n, true, true);
+        r = set_host_notifier_internal(proxy, bus, n, true);
         if (r < 0) {
             goto assign_error;
         }
@@ -215,7 +214,7 @@  assign_error:
             continue;
         }
 
-        r = set_host_notifier_internal(proxy, bus, n, false, false);
+        r = set_host_notifier_internal(proxy, bus, n, false);
         assert(r >= 0);
     }
     k->ioeventfd_set_started(proxy, false, true);
@@ -237,7 +236,7 @@  void virtio_bus_stop_ioeventfd(VirtioBusState *bus)
         if (!virtio_queue_get_num(vdev, n)) {
             continue;
         }
-        r = set_host_notifier_internal(proxy, bus, n, false, false);
+        r = set_host_notifier_internal(proxy, bus, n, false);
         assert(r >= 0);
     }
     k->ioeventfd_set_started(proxy, false, false);
@@ -269,7 +268,7 @@  int virtio_bus_set_host_notifier(VirtioBusState *bus, int n, bool assign)
          */
         virtio_bus_stop_ioeventfd(bus);
     }
-    return set_host_notifier_internal(proxy, bus, n, assign, false);
+    return set_host_notifier_internal(proxy, bus, n, assign);
 }
 
 static char *virtio_bus_get_dev_path(DeviceState *dev)