X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fkni%2Frte_eth_kni.c;h=35a6d3ef728015e18497bc2a2218d0c2395a0671;hb=608e6fd6ab4f03b3f629779db47e8effe19ff4bc;hp=b7897b65630f67de34a5d72b008697f38e9e70c8;hpb=5f19dee604ed5760d819743d1d364493ead2aae6;p=dpdk.git diff --git a/drivers/net/kni/rte_eth_kni.c b/drivers/net/kni/rte_eth_kni.c index b7897b6563..35a6d3ef72 100644 --- a/drivers/net/kni/rte_eth_kni.c +++ b/drivers/net/kni/rte_eth_kni.c @@ -149,7 +149,8 @@ eth_kni_dev_start(struct rte_eth_dev *dev) } if (internals->no_request_thread == 0) { - ret = pthread_create(&internals->thread, NULL, + ret = rte_ctrl_thread_create(&internals->thread, + "kni_handle_req", NULL, kni_handle_request, internals); if (ret) { RTE_LOG(ERR, PMD, @@ -404,6 +405,18 @@ eth_kni_probe(struct rte_vdev_device *vdev) params = rte_vdev_device_args(vdev); RTE_LOG(INFO, PMD, "Initializing eth_kni for %s\n", name); + if (rte_eal_process_type() == RTE_PROC_SECONDARY && + strlen(params) == 0) { + eth_dev = rte_eth_dev_attach_secondary(name); + if (!eth_dev) { + RTE_LOG(ERR, PMD, "Failed to probe %s\n", name); + return -1; + } + /* TODO: request info from primary to set up Rx and Tx */ + eth_dev->dev_ops = ð_kni_ops; + return 0; + } + ret = eth_kni_kvargs_process(&args, params); if (ret < 0) return ret;