Hi Alex, On Thu, 2014-02-27 at 11:44 -0800, Alex Wang wrote:
> static int > -dpif_linux_recv_set__(struct dpif *dpif_, bool enable) > +dpif_linux_recv_set__(struct dpif *dpif_, bool enable, uint32_t n_handlers) > { > struct dpif_linux *dpif = dpif_linux_cast(dpif_); > > - if ((dpif->epoll_fd >= 0) == enable) { > + if ((dpif->epolls != NULL) == enable) { > + if (enable && dpif->n_handlers != n_handlers) { > + dpif_linux_refresh_channels(dpif_, n_handlers); This makes dpif_linux_handlers_set() never return error, even if something wrong in dpif_linux_refresh_channels(). This trap could be avoided by removing n_handlers from recv_set(), and let handlers_set() do the n_handlers update. > + } > return 0; > } else if (!enable) { > - destroy_channels(dpif); > + destroy_all_channels(dpif); > return 0; > } else { > - return dpif_linux_refresh_channels(dpif_); > + return dpif_linux_refresh_channels(dpif_, n_handlers); > } > } > Best regards, Han _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev