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
[email protected]
http://openvswitch.org/mailman/listinfo/dev