On 2015/07/08 9:42, Ouyang, Changchun wrote: >> -----Original Message----- >> From: Iremonger, Bernard >> Sent: Tuesday, July 7, 2015 5:18 PM >> To: dev at dpdk.org >> Cc: Ouyang, Changchun; Iremonger, Bernard >> Subject: [PATCH v4 4/4] test-pmd: remove call to >> rte_eth_promiscuous_disable() from detach_port() >> >> At this point the stop() and close() functions have already been called. >> The rte_eth_promiscuous_disable() function does not return on the VM. > I think we need root the cause why it doesn't return on the VM.
It seems this patch is correct. The root cause is that when close() is called, virtio-net device will be reset by vtpci_reset(), and at this point all virtqueues will be invalid in virtio-net device. After resetting device, we should not call rte_eth_promiscuous_disable(), because it will use an one of virtqueues. Anyway, promiscuous configuration will be initialized when the device is reset. Regards, Tetsuya > >> Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com> >> --- >> app/test-pmd/testpmd.c | 4 +--- >> 1 files changed, 1 insertions(+), 3 deletions(-) >> >> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index >> 82b465d..4769533 100644 >> --- a/app/test-pmd/testpmd.c >> +++ b/app/test-pmd/testpmd.c >> @@ -1,7 +1,7 @@ >> /*- >> * BSD LICENSE >> * >> - * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. >> + * Copyright(c) 2010-2015 Intel Corporation. All rights reserved. >> * All rights reserved. >> * >> * Redistribution and use in source and binary forms, with or without >> @@ -1542,8 +1542,6 @@ detach_port(uint8_t port_id) >> return; >> } >> >> - rte_eth_promiscuous_disable(port_id); >> - > It seems a workaround. > >> if (rte_eth_dev_detach(port_id, name)) >> return; >> >> -- >> 1.7.4.1