X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fkni%2Frte_eth_kni.c;h=d88cb1778eae618a822ace63d277d94b789f87e2;hb=2ad5482b51eb26b17fe95e4d41ecbead76ee955c;hp=7cba92e2ed253fecf4ad4e81d4cb9039af5ca854;hpb=64edb05e29c82260a0bd1000a20023d20c123e41;p=dpdk.git diff --git a/drivers/net/kni/rte_eth_kni.c b/drivers/net/kni/rte_eth_kni.c index 7cba92e2ed..d88cb1778e 100644 --- a/drivers/net/kni/rte_eth_kni.c +++ b/drivers/net/kni/rte_eth_kni.c @@ -156,6 +156,8 @@ eth_kni_dev_start(struct rte_eth_dev *dev) } if (internals->no_request_thread == 0) { + internals->stop_thread = 0; + ret = rte_ctrl_thread_create(&internals->thread, "kni_handle_req", NULL, kni_handle_request, internals); @@ -177,7 +179,7 @@ eth_kni_dev_stop(struct rte_eth_dev *dev) struct pmd_internals *internals = dev->data->dev_private; int ret; - if (internals->no_request_thread == 0) { + if (internals->no_request_thread == 0 && internals->stop_thread == 0) { internals->stop_thread = 1; ret = pthread_cancel(internals->thread); @@ -187,8 +189,6 @@ eth_kni_dev_stop(struct rte_eth_dev *dev) ret = pthread_join(internals->thread, NULL); if (ret) PMD_LOG(ERR, "Can't join the thread"); - - internals->stop_thread = 0; } dev->data->dev_link.link_status = 0;