I think it would be nice to have ovs_assert(!fd != !wevent); ifdefed under Windows. And on the rest of the platforms: ovs_assert(!fd != !wevent);
And probably also for poll_create_node as well. Like Ilya and Nikita were mentioning. Otherwise: Acked-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> > -----Mesaj original----- > De la: Gurucharan Shetty [mailto:shet...@nicira.com] > Trimis: Thursday, October 1, 2015 12:19 AM > Către: dev@openvswitch.org > Cc: Alin Serdean <aserd...@cloudbasesolutions.com>; Gurucharan Shetty > <gshe...@nicira.com> > Subiect: [PATCH] poll-loop: Fix a bug while finding a poll node. > > When a poll_node is created, it gets either a 'fd' or a 'wevent' (can't get > both). When the poll_node is searched for previous creations on that 'fd' or > 'wevent', the search criteria was wrong for Windows. In Windows, when a > 'fd' is received in poll_create_node, we create a corresponding 'wevent'. So > while searching for that 'fd', we should not look for 'wevent' in the > hmap_node. > > Reported-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> > Signed-off-by: Gurucharan Shetty <gshe...@nicira.com> > --- > lib/poll-loop.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/lib/poll-loop.c b/lib/poll-loop.c index 3c4b55c..60e1f6e 100644 > --- a/lib/poll-loop.c > +++ b/lib/poll-loop.c > @@ -57,16 +57,20 @@ struct poll_loop { > > static struct poll_loop *poll_loop(void); > > -/* Look up the node with same fd and wevent. */ > +/* Look up the node with same fd or wevent. */ > static struct poll_node * > find_poll_node(struct poll_loop *loop, int fd, HANDLE wevent) { > struct poll_node *node; > > + /* Both 'fd' and 'wevent' cannot be set. */ > + ovs_assert(!fd != !wevent); > + > HMAP_FOR_EACH_WITH_HASH (node, hmap_node, > hash_2words(fd, (uint32_t)wevent), > &loop->poll_nodes) { > - if (node->pollfd.fd == fd && node->wevent == wevent) { > + if ((fd && node->pollfd.fd == fd) > + || (wevent && node->wevent == wevent)) { > return node; > } > } > -- > 1.7.9.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev