On Fri, Apr 25, 2014 at 11:04 AM, Alex Wang <al...@nicira.com> wrote: > Commit 7d170098 (ofproto-dpif-upcall: Remove the flow_dumper thread.) > initialized the memory barrier inside the udpif_start_threads() function. > However, the udpif_start_threads() function does not check the number of > revalidator threads specified in udpif. So, when the number is zero, it > causes the error in barrier initialization. This could happen when the > other_config:flow-restore-wait is set and the udpif_flush() is called. > > This commit fixes the issue, by checking the specified number of threads > in udpif_start_threads(). > > Reported-by: Gurucharan Shetty <gshe...@nicira.com> > Signed-off-by: Alex Wang <al...@nicira.com>
This patch fixes the problem for me. It also looks correct. But the code here has changed so much over the past few months, that I do not understand all the implications. So, with that : Acked-by: Gurucharan Shetty <gshe...@nicira.com> > --- > ofproto/ofproto-dpif-upcall.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c > index 84afc56..717563a 100644 > --- a/ofproto/ofproto-dpif-upcall.c > +++ b/ofproto/ofproto-dpif-upcall.c > @@ -342,7 +342,7 @@ static void > udpif_start_threads(struct udpif *udpif, size_t n_handlers, > size_t n_revalidators) > { > - if (udpif && (!udpif->handlers && !udpif->revalidators)) { > + if (udpif && n_handlers && n_revalidators) { > size_t i; > > udpif->n_handlers = n_handlers; > -- > 1.7.9.5 > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev