X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest-pmd%2Ftestpmd.c;h=35cf2667417bd0787cb8da3865fbd5f1741f966f;hb=c4c4a0c057fbfb495bb91a632cb43b21f4cc9bc8;hp=017cc618fa82a9f1d33c4ac3c0cc1b51fb65aa2d;hpb=fe613657ce486083a3ed96890c95de4f35c8593b;p=dpdk.git diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 017cc618fa..35cf266741 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -1689,7 +1689,7 @@ start_port(portid_t pid) } diag = rte_eth_rx_queue_setup(pi, qi, - port->nb_rx_desc[pi], + port->nb_rx_desc[qi], rxring_numa[pi], &(port->rx_conf[qi]), mp); @@ -1704,7 +1704,7 @@ start_port(portid_t pid) return -1; } diag = rte_eth_rx_queue_setup(pi, qi, - port->nb_rx_desc[pi], + port->nb_rx_desc[qi], port->socket_id, &(port->rx_conf[qi]), mp); @@ -2014,6 +2014,7 @@ detach_port(portid_t port_id) void pmd_test_exit(void) { + struct rte_device *device; portid_t pt_id; int ret; @@ -2027,6 +2028,18 @@ pmd_test_exit(void) fflush(stdout); stop_port(pt_id); close_port(pt_id); + + /* + * This is a workaround to fix a virtio-user issue that + * requires to call clean-up routine to remove existing + * socket. + * This workaround valid only for testpmd, needs a fix + * valid for all applications. + * TODO: Implement proper resource cleanup + */ + device = rte_eth_devices[pt_id].device; + if (device && !strcmp(device->driver->name, "net_virtio_user")) + detach_port(pt_id); } }